Как получить поле БД из объекта класса - PullRequest
0 голосов
/ 16 сентября 2018

Я выполняю этот оператор обновления, который отлично работает.

$g = Group::where([['id', $idgroup], ['admin', $currentUser]]);
$g->update(['admin' => $iduser]);

После этого утверждения мне нужно имя поля из моего объекта группы. Но с помощью следующего оператора я получаю неопределенное свойство: Illuminate \ Database \ Eloquent \ Builder :: $ name.

$groupname = $g->name; 

Группа - это моя модель (таблица БД), которая содержит поле id, name, admin. Как я могу получить имя поля из этого объекта?

Спасибо

Ответы [ 3 ]

0 голосов
/ 16 сентября 2018

Если вы хотите получить одну запись из базы данных, используйте first():

$g = Group::where([['id', $idgroup], ['admin', $currentUser]])->first();

$g->name; //it will output name

ИЛИ Если вы хотите получить всю запись из базы данных, используйте get():

$groups = Group::where([['id', $idgroup], ['admin', $currentUser]])->get();

Чтобы получить имя здесь, вам нужно запустить цикл, потому что get() вернет коллекцию

foreach($groups as $g){
   $g->name; //it will give name 
}
0 голосов
/ 16 сентября 2018

Ваша переменная $ g - это Illuminate \ Database \ Eloquent \ Builder, представляющий запрос, а не отдельный объект, то есть он не имеет свойств группы. Скорее всего, у вас есть более одной записи в $ g, у вас есть две опции, чтобы получить все имена полей, как это

$g->pluck('name')

Это даст вам коллекцию всех имен, или, если вы уверены, что есть один единственный объект, вы можете сделать $ g-> first () -> name, это даст вам имя первого объекта ( только один, если вы уверены, что есть только один объект)

0 голосов
/ 16 сентября 2018

Без поиска он вернет вам конструктор запросов, но когда вам нужно выбрать экземпляр модели, примените get (для Коллекция модели) или first (для одного экземпляра модели) к построителю запросов , В вашем случае вам нужно вызвать first() метод, подобный этому

$g = Group::where([['id', $idgroup], ['admin', $currentUser]])->first();
$g->update(['admin' => $iduser]);

Тогда вы можете сделать

$groupname = $g->name; 

Вы можете проверить подробности здесь для получения модели

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