2017-03-29 4 views
2

Rawを使用すると、更新された行のコレクションを返す方法は?例えば更新後のコレクションの回収()?

$updated = DB::table('users')->where('id', 1)->update(['votes' => 123]); 

私は、コレクションの更新された行を返すようにdd($updated)を期待していたが、それはそれがどのように動作するかではありません。1.

{{$updated->votes}} should return 123 
+0

更新日は、このクエリによって更新された行数 – shantanu

+0

更新文の後に行を選択する必要があります –

答えて

1

を返しました。あなたは、このクエリはあなたにオブジェクトを返すことを期待することはできません。

$updated = DB::table('users')->where('id', 1)->update(['votes' => 123]); 

あなたは、あなたの質問に言及しただけのようにクエリビルダを使用したい場合は、手動でオブジェクトを取得する必要があります:

$data = DB::table('users')->where('id', 1)->first(); 
雄弁で

あなたはupdateOrCreate()を使用することができます。

$data = User::where('id', 1)->updateOrCreate(['votes' => 123]); 

これは、オブジェクトを返します。 update()はブール値を返しますので、ここでは使用できません。アップデート用のコードの下に書くコントローラで

0

$updated = DB::table('users')->where('id', 1)->update(['votes' => 123])->get(); 
0

データベースに関するすべての機能を使用すると、PHPのネイティブ関数を使って生のクエリを実行するのと同じ値を返します。

PHPでUPDATEまたはINSERTクエリを実行すると、ブール値が返されます。 update()は1または0を返します。

シーンの背後でSELECTを使用する関数は、行を含むオブジェクトを返します。例:first()get()find()など

関連する問題