Я новичок в laravel и не могу придумать, как это сделать, например, у меня есть 100 сообщений в моем приложении, я не хочу, чтобы пользователь видел их все, я хочу, чтобы он видел только некоторые, просто в случайном порядке способ. поэтому не все пользователи видят все посты, они видят только случайные.






использовать красноречивый inRandomOrder() .
проверьте здесь для получения дополнительной информации
Используйте inRandomOrder() в сочетании с limit(). В приведенном ниже примере мы берем 10 случайных записей.
$results = Post::inRandomOrder()->limit(10)->get();
Теперь я могу получать сообщения в случайном порядке, но после обновления страницы сообщения тоже обновляются. Могу ли я исправить это?
Да, но тогда вам нужно сохранить эту информацию в таблице. Создайте таблицу, содержащую идентификатор пользователя и идентификаторы сообщений, и, если в идентификаторе пользователя нет записей, используйте фрагмент кода выше, чтобы вставить строки. Затем выберите сообщения, в которых они существуют в этой таблице для этого пользователя.
попробую так сделать еще раз спасибо
Могу ли я хранить его в кеше вместо базы данных?
Конечно, вы можете сохранить идентификаторы в файле cookie или аналогичном, но он будет обновляться после истечения срока действия файла cookie или когда пользователь очистит свои файлы cookie.
это может тебе помочь
public function getRandomPost()
{
$post = Post::inRandomOrder()
->where('approved', true)->first();
return redirect()->route('posts.show', ["id" => $post->id]);
}
разве это не будет просто размещать сообщения в случайном порядке? Я имею в виду, если у меня есть 100 сообщений, будет ли отображаться только часть из них или все сообщения будут отображаться в случайном порядке?