Фильтр по дате, например день, год, месяц из массива в Laravel - PullRequest
0 голосов
/ 16 июня 2020

У меня есть массив, который я получаю из этого кода:

$genreTag = Tag::with('tracks','elements')->where('category_id', $genresCat->id)->whereIn('id', $id)->get()->toArray();
$moodTag = Tag::with('tracks','elements')->where('category_id', $moodCat->id)->whereIn('id', $id)->get()->toArray();
$productionTag = Tag::with('tracks','elements')->where('category_id', $productionCat->id)->whereIn('id', $id)->get()->toArray();
$vocalTag = Tag::with('tracks','elements')->where('category_id', $vocalCat->id)->whereIn('id', $id)->get()->toArray();

$tag = array_merge($genreTag, $moodTag, $productionTag, $vocalTag);

Когда я нажимаю флажок «Фильтр прошлого года», как мне получить данные с прошлого года по сегодняшний день?

1 Ответ

0 голосов
/ 16 июня 2020

Для этого можно использовать whereBetween. Вам также не нужно получать каждую группу по отдельности, а затем объединять их, существует метод под названием whereIn, который преобразует вашу коллекцию в массив с использованием метода toArray(). Позвольте мне поделиться с вами коротким отрывком ..

$tags = Tag::with('tracks', 'elements')
->whereIn('category_id', [$genresCat->id, $moodCat->id, $productionCat->id, $vocalCat->id])
->whereBetween('created_at', [now()->toDateTimeString(), now()->subYear()->toDateTimeString()])
->get()
->toArray();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...