Метод Illuminate \ Support \ Collection :: select не существует - PullRequest
1 голос
/ 02 мая 2020

У меня есть этот код

$post = DB::table('posts')
->join('post_images','post_images.post_id','=','posts.id')
->join('categories','categories.id','=','posts.category_id')
->orderBy('posts.created_at','desc')->paginate(15)
->select('posts.*','categories.title as category', 'post_images.image')
->get();

Но я получаю Метод Illuminate \ Support \ Collection :: select не существует. .

Мне нужно разбить на страницы все сообщения

1 Ответ

1 голос
/ 02 мая 2020

То, что вы получаете от paginate(), уже является коллекцией и больше не построителем запросов, поэтому вы не можете вызвать select() для него. измените порядок вызовов методов, и у вас все будет в порядке.

$post = DB::table('posts')
->join('post_images','post_images.post_id','=','posts.id')
->join('categories','categories.id','=','posts.category_id')
->orderBy('posts.created_at','desc')
->select('posts.*','categories.title as category', 'post_images.image')
->paginate(15);

Кроме того, я бы посоветовал вам создать модель и отношения, если вы используете Laravel / Eloquent - все становится проще. Если после этого вам понадобятся дополнительные маги c, которые вы хотите иметь в нескольких местах, вам следует проверить область действия модели ?

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