使用join laravel fluent中的table2字段值更新table1字段

时间:2013-11-21 03:16:56

标签: laravel-4

$table = 'favorite_contents';
$contents = DB::table($table)
        ->join('contents', function($join) use($table){
            $join->on("$table.content_id", '=', 'contents.id');
        })
        ->whereIn("$table.content_id",$ids)
        ->update(array(
                "$table.expired" => 1,
                "$table.type" => "contents.type"
        ));

"$table.expired" => 1工作正常,但"$table.type" => "contents.type"没有。

所以问题与在content表中获取type的值有关,如何在不使用foreach的情况下执行此操作?

1 个答案:

答案 0 :(得分:0)

"$table.type" => "contents.type"更改为"$table.type" => DB::raw("contents.type")。正如你所知,我相信update()方法试图保存字符串“contents.type”,而不是从“contents”中获取“type”列。如果你使用MySQL并且favorite_contents.type是数字列,它可能会将“contents.type”转换为0而不显示错误。