Я пытаюсь получить все «книги», которые есть у одного пользователя: но я не могу сделать это, как мне нужно.Как получить объект Builder из строк, связанных с pivot - Laravel
Я использую следующий код:
/*Gets all books from the user whose id is 1*/
$books= User::find(1)->books();
Это возвращение к мне Collection
объекта; но мне нужен объект Builder
, поскольку я получаю, когда использую метод «select».
/* This code return me a "Builder" object */
Books::select(array('id', 'name', 'type'));
Мне нужна Builder
вместо Collection
, потому что я с помощью Bllim/DataTables на мой проект, и этот пакет просто принять Builder
объект ...
Если я пошлю ему Collection
ИТС бросить мне следующую ошибку (500 - Внутренняя ошибка сервера):
{
"error":
{
"type":"ErrorException",
"message":"Undefined property: Illuminate\\Database\\Eloquent\\Builder::$columns",
"file":"\/var\/www\/proyect\/myproyect\/vendor\/bllim\/datatables\/src\/Bllim\/Datatables\/Datatables.php",
"line":256
}
}
Кто-нибудь знает решение?
EDIT:
Когда я использую метод GetQuery() дважды я получаю следующее сообщение об ошибке:
{"error":{"type":"ErrorException","message":"array_values() expects parameter 1 to be array, null given","file":"\/var\/www\/proyect\/myproyect\/vendor\/bllim\/datatables\/src\/Bllim\/Datatables\/Datatables.php","line":550}}
редко, потому что, когда я использовал метод "выбрать" DataTables работал отлично. ..
Этот код работает:
Books::select(array('id', 'name', 'type'));
Но код, который вы сказали мне, не работает:
$user = User::find(1);
$user->books()->getQuery()->getQuery();
Может быть существует какой-либо способ получить все книги через метод «выбрать»? – MartaGom
Если вы используете 'User :: find (1) -> books()' ... notice(), он позволит вам запросить набор результатов. –
Извините, это ошибка «опечатки». У меня есть «()» в моем коде: но бросает мне ошибку, указанную по моему вопросу – MartaGom