2017-01-29 1 views
2

$wire = Wire::find(2)->value('options'); var_dump($wire); die(); Eloquent находка (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 

Почему вы нашли (2) возвращаемое значение для записи №1?

Я узнал это в другом приложении Laravel. Это было сделано в новом приложении Laravel.

+0

'find', чтобы найти модель по ее первичному ключу. Первый столбец имеет первичный ключ –

+0

Да. CREATE TABLE 'wires' ( ' id' INT (10) без знака NOT NULL AUTO_INCREMENT, 'options' JSON NOT NULL, ' value' VARCHAR (255) NOT NULL COLLATE utf8mb4_unicode_ci, 'created_at' метка NULL, NULL, УМОЛЧАНИЮ, 'updated_at' timestamp NULL DEFAULT NULL, ПЕРВИЧНЫЙ КЛЮЧ (' 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') использует метод builder и повторно запускает запрос? – Ryderpro

ответ

3

Похоже, что разработка метода find() с помощью -> value или -> get запускает совершенно новый запрос.

Wire::find(2)->get(); запускает новый запрос, восстанавливающий все модели.

Wire::find(2); возвращает модель первичного ключа 2.

 Смежные вопросы

  • Нет связанных вопросов^_^