繁体   English   中英

Laravel 试图获取非对象的属性 ID

[英]Laravel Trying to get property id of non-object

我正在尝试更新关于我们表中的变量,但出现此错误。 怎么了?

关于我们控制器:

   /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\Models\AboutUs $aboutUs
     * @return \Illuminate\Http\Response
     */
    public function edit($aboutUs_id)
    {
        $aboutUs = AboutUs::find($aboutUs_id);
        return view('auth.aboutus.form',compact('aboutUs'));
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Models\AboutUs $aboutUs
     * @return \Illuminate\Http\Response
     */
    public function update(AboutUsRequest $request, AboutUs $aboutUs)
    {
        $params = $request->all();

        $aboutUs->update($request->all($params));

        return redirect()->route('aboutUs.index')->with('success','Post updated successfully');
    }

这是我的 AboutUsRequest,我在其中收到此错误:

    public function rules()
    {
        $rules = [
            'title1' => 'required|min:5',
            'body1' => 'required|min:5',
        ];

        if ($this->route()->named('aboutUs.update')) {
            $rules['title1'] .= ',' . $this->route()->parameter('aboutUs')->id;
        }

        return $rules;
    }
}

web.php 看起来像这样:


        Route::group([
            'namespace' => 'Admin',
            'prefix' => 'admin',
        ], function () {
            Route::group(['middleware' => 'is_admin'], function () {
                Route::get('/contacts', 'ContactController@index')->name('emails.contactus');
                Route::get('/orders', 'OrderController@index')->name('home');
                Route::get('/orders/{order}', 'OrderController@show')->name('orders.show');
            });
            Route::resource('blogs', 'BlogController');
            Route::resource('aboutUs', 'AboutUsController');
            

但我的路线列表显示使用 {aboutU} 而不是 {aboutUs} 进行销毁、更新和编辑:

 App\Http\Middleware\SetLocale                           |
|        | GET|HEAD  | admin/aboutUs/{aboutU}/edit                                         | aboutUs.edit             | App\Http\Controllers\Admin\AboutUsControl

我假设您想要更新一个唯一字段 => title1 如果这是正确的,您可以在AboutUsRequest中为title1设置规则,如下所示:

required|unique:table_name,column_name,'.$id,

您也可以查看此解决方案。 Laravel:更新时验证唯一

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM