Php 如何为1到多个用户在Laravel中的Elount执行更新功能?
我想更新id=3的状态 我犯了一个错误 SQLSTATE[42S22]:未找到列:字段中的1054未知列“3” 列表“(SQL:从Php 如何为1到多个用户在Laravel中的Elount执行更新功能?,php,laravel,eloquent,Php,Laravel,Eloquent,我想更新id=3的状态 我犯了一个错误 SQLSTATE[42S22]:未找到列:字段中的1054未知列“3” 列表“(SQL:从条目中选择3) 您的错误修复是 $entrys=Entry::with('user')->find($id); 不要将值传递给get() 对于更新添加user\u id键,我假设您想插入auth()->id()这样代码就是 公共功能更新(请求$Request) { $this->validate$请求[ '状态'=>'必需', ]); $entrys=新条目;
条目中选择3
)
您的错误修复是
$entrys=Entry::with('user')->find($id);
不要将值传递给get()
对于更新添加user\u id
键,我假设您想插入auth()->id()
这样代码就是
公共功能更新(请求$Request)
{
$this->validate$请求[
'状态'=>'必需',
]);
$entrys=新条目;
$entrys->status=$request->input('status');
$entrys->user_id=auth()->id();//添加此行
$entrys->save();
返回重定向('/entry/view')->带有('Success','Status updated!');
}
SQLSTATE[42S22]:未找到列:“字段列表”中的1054未知列“3”(SQL:从条目中选择3)
一般错误:1364字段“用户id”没有默认值(SQL:插入到入口(状态、更新位置、创建位置)值(已接收,2020-09-16 12:03:082020-09-16 12:03:08))
这是因为您没有在更新方法中设置user\u id
列
$entrys->user\u id=$request->input('user\u id')//更新的用户
您在第一次之前用()执行,然后不需要获取
更改后,我在一般错误中出错:1364字段“user\u id”没有默认值
先生,因为这是管理员页面。否则它将获取正确的管理员id?我的用户和管理员在同一张名为user
的表格中,不知道您是如何处理的。您可以根据需要添加任何值添加update()
功能我已更新了我的后租,在您提出问题并收到相关答案后,请勿更改您的问题。如果你有一个新问题,问一个新问题。
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);
}
Entry::with('user')->find($id);