Я пытаюсь сделать следующее:
При загрузке страницы:
Выберите случайную идею один из базы данных.
Мой код:
public function index()
{
if (Cookie::get('ideas'))
{
$ideas = Cookie::get('ideas');
$ideas = unserialize($ideas);
}
else
{
$ideas = array();
}
$random_idea = Idea::inRandomOrder()->first();
$ideas[] = $random_idea->id;
Cookie::queue('ideas', serialize($ideas));
return view('app', compact('random_idea'));
}
Я проверяю, установлен ли уже cookie, если он установлен, добавьте случайную идею в cookie. Если нет, создайте новый массив и добавьте в него идентификатор.
Когда они нажимают кнопку на странице (через вызов ajax).
Мой код:
public function idea(Request $request)
{
$ideas = Cookie::get('ideas');
$ideas = unserialize($ideas);
$random_idea = Idea::inRandomOrder()->first();
$ideas[] = $random_idea->id;
Cookie::queue('ideas', serialize($ideas));
return response()->json($random_idea);
}
У меня 2 проблемы:






У вас есть массив идентификаторов, построитель запросов Laravel принимает массив с whereNotIn. Это запустит SQL WHERE id NOT IN (1, 2, etc):
$random_idea = Idea::whereNotIn('id', $ideas)->inRandomOrder()->first();
Вы действительно должны изолировать вопросы от одной проблемы, но с вашей первой проблемой вы пытались сбросить
$ideasпосле того, как вы десериализовали его?