не получить отсортированный и чистый результат от функции get () laravel Eloquent - PullRequest
1 голос
/ 16 апреля 2019

Приведенный ниже код не дает мне правильный результат запроса.

$studentMeta = StudentMeta::where([
    'meta_key' => 'brother_phone',
    'students_id' => 9
])->get();
print_r($studentMeta);

Я получаю этот результат: enter image description here

Однако яожидайте что-то вроде этого:

$studentMeta => Array
(
    [id] => 49
    [meta_key] => brother_phone
    [meta_value] => 7926161024
    [created] => 2019-04-17 00:10:03
    [students_id] => 9
)

Есть идеи?

1 Ответ

4 голосов
/ 16 апреля 2019

Все потому, что вы получаете коллекцию экземпляров модели (например, вы используете get() вместо first()).

Если вы хотите вернуть его в представление, Laravel вызовет метод ->toArray() под капотом.

Попробуйте сделать это, чтобы увидеть ожидаемый результат:

$studentMeta =  StudentMeta
                    ::where(['meta_key' => 'brother_phone', 'students_id'=> 9])
                    ->get();

dd($studentMeta->toArray());

Проверьте этот раздел документации: Красноречивая сериализация

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...