$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的情况下执行此操作?
答案 0 :(得分:0)
将"$table.type" => "contents.type"
更改为"$table.type" => DB::raw("contents.type")
。正如你所知,我相信update()
方法试图保存字符串“contents.type”,而不是从“contents”中获取“type”列。如果你使用MySQL并且favorite_contents.type是数字列,它可能会将“contents.type”转换为0而不显示错误。