Php Laravel雄辩的保存项目
当我试图在Laravel中保存一个项目时,它会显示以下内容Php Laravel雄辩的保存项目,php,laravel,eloquent,Php,Laravel,Eloquent,当我试图在Laravel中保存一个项目时,它会显示以下内容 调用未定义的方法Illumb\Database\Query\Builder::save() 我已经遵循了文档,我可以删除项目,只是不能更新。我的代码有什么问题吗 public function publishedMain($id, $state){ $userId = Auth::user()->id; $userAdmin = Auth::user()->admin; if($userAd
调用未定义的方法Illumb\Database\Query\Builder::save() 我已经遵循了文档,我可以删除项目,只是不能更新。我的代码有什么问题吗
public function publishedMain($id, $state){
$userId = Auth::user()->id;
$userAdmin = Auth::user()->admin;
if($userAdmin == "0"){
$clients = Clients::whereRaw('id = ? and parent = ?', array($id, $state));
$clients->active = $state;
$clients->save();
die('not admin');
}else{
$clients = Clients::whereRaw('id = ?', array($id));
$clients->active = $state;
$clients->save();
die('admin');
}
}
非常感谢
Brent在查询生成器上调用save()
方法,而不是在模型上调用
您缺少->first()
片段:
$clients = Clients::whereRaw('id = ? and parent = ?', array($id, $state))->first();
当然,这将获得第一个客户机,因此命名变量$clients
没有多大意义
您还应该检查$clients
变量是否不为null,在这种情况下,它没有找到任何内容
(顺便说一句,你的模型应该叫
Client
,而不是Clients
)谢谢你的回答,但我还是不明白我是怎么更新这个项目的?我只想改变一个值?我可以提取数据,在控制器中完全删除数据,但不更新?whereRaw()只是添加了一个条件,它不提取任何内容。我已经添加了我的get,但在保存时仍然使用saysCall to undefined method illighted\Database\elount\Collection::save()记住这只会更新第一个返回的结果。如果您有一堆需要更新的客户机,那么您需要在它们之间循环并在运行时保存它们。