[英]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.