У меня есть таблица с именем "posts" с столбцами: "post_id int primary increments", "poster_id int" и "status text", а также массив с именами друзей с столбцами: "user_id int primary" и "friend_ids" текст.
Мне нужно собрать все идентификаторы в текстовом столбце друзей, что достаточно просто:
$friends = explode(',', \Friend::where('user_id', \Sentry::getUser()->id)->first()->friend_ids);
Если данные в текстовом столбце будут выглядеть как "1,2,3" и т.д.
Затем я создаю объект Eloquent Collection, который также легко выполняется с помощью:
$posts = new \Illuminate\Database\Eloquent\Collection();
Но проблема в том, что я не могу понять, как заполнить коллекцию и отсортировать ее содержимое столбцом "created_at".
Это то, что у меня есть на данный момент:
foreach($friends as $id) {
$posts_ = \Post::where('poster_id', $id)->getQuery()->orderBy('created_at', 'desc')->get();
foreach($posts_ as $post) {
$posts->add($post);
}
}
Я не могу понять, будет ли этот код работать или нет, чтобы сортировать весь сбор сообщений по столбцу "created_at". Мне также нужно будет легко разбивать всю коллекцию.
Каков рекомендуемый способ сортировки коллекции?