Php Laravel+将元素添加到cookie中,并且不包括在查询中

Php Laravel+将元素添加到cookie中,并且不包括在查询中,php,arrays,laravel,laravel-5,cookies,Php,Arrays,Laravel,Laravel 5,Cookies,我正在努力做到以下几点: 页面加载时: 从数据库中随机选择一个想法 我的代码: public function index() { if(Cookie::get('ideas')) { $ideas = Cookie::get('ideas'); $ideas = unserialize($ideas); } else { $ideas = array(); } $random_idea =

我正在努力做到以下几点:

页面加载时:

从数据库中随机选择一个想法

我的代码:

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'));
}
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);
}
我正在检查cookie是否已设置,如果已设置,则将随机想法添加到cookie中。如果不是,则创建新数组并将id添加到数组中

当他们通过ajax调用单击页面上的按钮时

我的代码:

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'));
}
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);
}
我有两个问题:

cookie变量是一个数组,其中始终有一个元素id未添加到数组中 如何从数据库中选择一个不在数组中的随机元素?
如果您有一个ID数组,Laravel的查询生成器将接受一个whereNotIn数组。这将运行SQL,其中id不在1、2等中:


如果您有一个ID数组,Laravel的查询生成器将接受一个whereNotIn数组。这将运行SQL,其中id不在1、2等中:


您确实应该将问题隔离到一个问题,但对于第一个问题,您是否尝试在取消序列化后转储$ideas?您确实应该将问题隔离到一个问题,但是对于第一个问题,您是否尝试在取消序列化后转储$ideas?