laravel eloquent orm で update メソッドと limit メソッドの両方を使用する方法がわかりませんでした。
$affectedRows = Promo::where('used','=',0)
->update(array('user_id' => Auth::user()->id))
->limit(1); // Call to a member function limit() on a non-object
//->take(1); // Call to a member function take() on a non-object
limit と take の両方の方法を試しました。
私は1つの結果だけを更新したいです。
しかし、更新時に制限を使用したり、メソッドを取得したりすることはできないと思います。
雄弁を介して1行だけを更新する方法はありますか?
追加 :
雄弁なORM
$affectedRows = Promo::where('user_id','=',DB::raw('null'))->take(1)
->update(
array(
'user_id' => Auth::user()->id,
'created_ip' =>Request::getClientIp(),
'created_at' => new DateTime,
'updated_at' => new DateTime
)
);
クエリビルダー
$affectedRows = DB::table('promos')->whereNull('user_id')
->take(1)
->update(array(
'user_id' => Auth::user()->id,
'created_ip' =>Request::getClientIp(),
'created_at' => new DateTime,
'updated_at' => new DateTime
));
これらの 2 つのコードは、制限パラメータをクエリに追加しませんでした
出力:
update `promos` set `user_id` = '1', `created_ip` = '127.0.0.1', `created_at` = '2013-06-04 14:09:53', `updated_at` = '2013-06-04 14:09:53' where `user_id` = null