Php 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

当我试图在Laravel中保存一个项目时,它会显示以下内容


调用未定义的方法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()记住这只会更新第一个返回的结果。如果您有一堆需要更新的客户机,那么您需要在它们之间循环并在运行时保存它们。