php - Laravel Eloquent 不只更新插入

标签 php laravel laravel-4

我在使用 PHP Laravel 更新功能时遇到了一些问题。它不更新,只插入。

 public function post_rate(){
    $o = Input::all();

    //has user already rated?!
    $query = DB::table("ratings")->select("id")->where("user", "=", Auth::user()->id)->where("story_id", "=", $o['story_id'])->get();
    foreach ( $query as $d):
        $theID = $d->id;
    endforeach;
    if ( empty($query)):  //User hasn't rated!
           $z = new Rating(); 
    else: 
          $z = new Rating($theID);  //user has rated, tell which to update  
-----------------------------^ that cause the problem!
     endif;

        $z->story_id = $o['story_id'];
        $z->user = Auth::user()->id;
        $z->rating = $o['rating'];
        $z->save();

         echo "OK";

}

它在没有建立行时有效,但是当我使用新评级(@something)时它失败了。

“ratings”表中的列 id 是主要的和 auto_increment。

在我的模型中我也设置了

 public static $key = 'id';

输出“$theID”还包含 mysql 行的正确 ID。

最佳答案

尝试使用 ->first()->get() 代替 $z = Rating::find($theID)

关于php - Laravel Eloquent 不只更新插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17154210/

相关文章:

php - 调用未定义的方法 Laravel\Socialite\One\TwitterProvider::stateless()

php - Laravel 邮件连接无法建立 Mailhog

css - laravel 5.3.16 不包括 Bootstrap 功能?

php - 在 Eloquent 地自动获取时重命名关系名称

Laravel Blade View 未显示对其所做的更改

php - 按未加载到网格中的数据对 jqgrid 进行排序?

php - 带有 php :7. 1-fpm 的 Docker 镜像的 GD 库

php - 从表中获取 blob 图像并使用 php sqlite3 显示它

mysql - 在 Laravel 查询生成器中使用括号

无论缓冲区设置如何,PHP 命令行输出缓冲区输出