2016-11-27 3 views
2

Я пытаюсь получить доступ к SINGLE VALUE из строки, но dd(); получает всю строку и показывает ее в массиве Collection. Код:Laravel Eloquent выводящий массив Collection вместо одного значения

$last_id = \App\Cat::limit(1)->orderBy('cat_id','desc')->get(['cat_id']); 
dd($last_id); 

Так что, когда мне нужно JUST "55" значение я получаю:

  • "cat_id" => "55"

То же самое происходит с другими столбцами, когда мне нужно только "Eletronics" Я получаю :

  • "cat_name" => "Eletronics"

Я уже пробовал много вещей, как Limit, List Первая и ничего не происходит, когда я пытаюсь вызвать что-то вроде dd($lastId->cat_id); это дает мне ошибку «Не определено свойство». Итак, теперь у меня действительно нет опций, так как я использую пример документации, и даже в этом случае он не работает нормально. Так что любая помощь будет большой, спасибо.

ответ

0

Я думаю, вы не понимаете, что Модель представляет целую строку таблицы. Это означает, что $last_id в вашем коде:

$last_id = \App\Cat::limit(1)->orderBy('cat_id','desc')->get(['cat_id']); 

представляет всю строку cats таблицы. Если вы хотите получить id, вы должны сделать это:

$cat = \App\Cat::first(1)->orderBy('cat_id','desc')->get(); 
dd($cat->id); 

Что еще, если вы пишете

$cat = \App\Cat::first(); 

вы получите первую кошку от cats стола, а затем вы можете получить доступ к каждому колонке эта строка как свойство объекта $cat

Если Laravel говорит, что свойство cat_id не определенно, Propably ваша таблица не содержит cat_id столбца.

+0

Я видел «first();» в некоторых вопросах, подобных мне, поэтому я попробовал, потому что у меня нет вариантов, но я должен признаться, что никогда не использовал его раньше, так что спасибо за подсказку. Тем не менее я могу получить ТОЛЬКО ОДИН столбец из множества других таблиц, используя «тот же код строки», но без части «взять». Пробовал свой код (опять же, потому что я действительно пробовал его раньше), и он продолжает говорить, что столбец не существует. 1 - Я на 100% уверен, что этот столбец существует, потому что я проверяю миграцию phpmyadmin, и если он не существует, он появится в «orderBy», где я использую его как параметр. –

+0

Уже получил его, я меняю get на метод «value». \ App \ Cat :: OrderBy ("ID", "по убыванию") -> значение ("ID"); Спасибо, парень –

0

Уже получил его, я изменяю get для метода «value».

\App\Cat::orderBy("id","desc")->value("id"); 
Смежные вопросы