Я использую Laravel 5.3 и пытаюсь построить запрос с несколькими функциями где и где. Вот мой код:
$posts_id = "1,3,4"; //from my query
$results = Post::select('*');
$results->whereIn('posts_id', [$posts_id]);
$resutls->get();
В моей базе данных есть 1 пост с идентификатором 4, но мой запрос ничего не возвращает. Хотя в моем посте есть 4 идентификатора $posts_id = "1,3,4";
,
Нужна помощь, чтобы получать сообщения от любого идентификатора, который я включил в свой $posts_id
переменная.
Заранее спасибо!
Вам нужно передать массив методу whereIn ():
$results = Post::whereIn('posts_id', explode(',' $posts_id))->get();
Обратите внимание, что вам не нужно вызывать каждый метод в отдельной строке. Вы можете связать их Кроме того, выбор (‘*’) не требуется.
Вы можете создать свой массив любым способом, вам не нужно использовать explode ().
$ids = [1, 2, 3];
$results = Post::whereIn('posts_id', $ids)->get();
Перед выполнением этого запроса может быть полезно проверить, не является ли массив пустым.
Других решений пока нет …