我用
得到了一个变量2,3
...我通过POST传递给我的函数:
//echo $_POST['sponsored_inserts']; returns 2,3
$sponsored_link = Link::where('status', '=', 1)
->where('sponsored', 1)
->with('page', 'tag')
->inRandomOrder()
->WhereNotIn('id', [$_POST['sponsored_inserts']])
->first();
WhereNotIn只从搜索中删除了id 2 ...但是,如果我把:
$sponsored_link = Link::where('status', '=', 1)
->where('sponsored', 1)
->with('page', 'tag')
->inRandomOrder()
->WhereNotIn('id', [$_POST['sponsored_inserts'],3])
->first();
作品...
发生了什么事?
答案 0 :(得分:0)
因为你的变量是一个字符串类型,如果像 2,3 用逗号分隔并不意味着它是一个数组。
WhereNotIn()
函数接受一个数组作为第二个参数,因此$_POST['sponsored_inserts'] = [2,3]
是可接受的
你需要这样做:
$sponsoredInserts = explode(',',$_POST['sponsored_inserts']);
并在您的查询中
->WhereNotIn('id',$sponsoredInserts);