如何在Laravel中为1到多个雄辩者执行更新功能



我想更新id=3 的状态

id=3 的条目

出现错误

SQLSTATE[42S22]:未找到列:1054字段中的未知列"3"list'(SQL:从entry中选择3(

public function edit($id)
{

$entrys = Entry::with('user')->get($id);
return view('entry.edit')->with('entry', $entrys);
}
Route::get('/entry/edit{id}', 'EntryController@edit')->name('entry.edit')->middleware('is_admin');
Route::post('/entry/edit', 'EntryController@update')->name('entry.update')->middleware('is_admin');
class Entry extends Model
{
protected $fillable = [
'title',
'status',
'file',
'user_id'
];

public function user()
{
return $this->belongsTo(User::class);
}
}
public function entrys()
{
return $this->hasMany(Entry::class);
}

您的错误修复是

$entrys = Entry::with('user')->find($id);

不要将值传递给get()


对于更新,添加user_id密钥,我假设您想要插入auth()->id(),因此代码为

public function update(Request $request)
{
$this->validate($request, [
'status' => 'required',
]);
$entrys = new Entry;
$entrys->status = $request->input('status');
$entrys->user_id = auth()->id(); // add this line
$entrys->save();
return redirect('/entry/view')->with('Success', 'Status updated!');
}

SQLSTATE[42S22]:未找到列:1054"字段列表"中的未知列"3"(SQL:从条目中选择3(

Entry::with('user')->find($id);

一般错误:1364字段"user_id"没有默认值(SQL:插入条目(状态,更新日期,创建日期(值(接收日期,2020-09-16 12:03:08200-09-16 12:00 03:08((

这是因为您没有在更新方法中设置user_id列。

$entrys->user_id = $request->input('user_id') // The user who gets updated

最新更新