2017-01-29 5 views
2

$wire = Wire::find(2)->value('options'); var_dump($wire); die(); 雄弁(2)帰国間違ったレコードを検索

戻り

これらは私の2データベースエントリです。

1 {"note": "wire one", "value": "WIRE 1"} WIRE ONE 2017-01-29 01:37:49 2017-01-29 01:37:49 
2 {"note": "wire two", "value": "WIRE 2"} WIRE TWO 2017-01-29 01:38:19 2017-01-29 01:38:19 

なぜレコード1の値がfind(2)で返されますか?

別のLaravelアプリでこれを認識しました。これは新鮮なLaravelアプリで行われました。

+0

'find'によって

Wire::find(2);戻っモデルは、主キーでモデルを見つけることです。最初の列に主キーがあります –

+0

はい。 は、TABLE 'wires'(符号なし ' id'はint(10)NOT NULL AUTO_INCREMENT、 'options' JSON、NOT NULL、 [値]のVARCHAR(255)NOT NULLをutf8mb4_unicode_ciを照合、 ' created_at'タイムスタンプNULLデフォルトNULLをCREATE 'updated_at'タイムスタンプNULLデフォルトNULL、 PRIMARY KEY(' id') )ENGINE = InnoDBのAUTO_INCREMENT = 3 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci。 – Ryderpro

+0

https://laracasts.com/discuss/channels/laravel/model-findid-returns-multiple-records 答えはそこにあると思います。 my - > value( 'options')のように見えますが、ビルダーメソッドを使用してクエリを再実行しますか? – Ryderpro

答えて

3

- > valueまたは - > getを使ってfind()メソッドを詳しく調べると、まったく新しいクエリが実行されます。

Wire::find(2)->get();すべてのモデルを取得する新しいクエリを実行します。主キー2.