Laravel WhereIn 数组只返回第一个索引结果

$dean_ids = Auth::user()->dean_id; // "9,11"
$subjects = Subject::whereIn('dean_id', [$dean_ids])->select('id')->get();

仅返回“9”的数据但是当我这样尝试时:

$subjects = Subject::whereIn('dean_id', [9,11])->select('id')->get(); 
//it returns all data that what i want.


慕斯王
浏览 180回答 1
1回答

慕姐4208626

如我所见,此行$dean_ids = Auth::user()->dean_id;返回一个逗号分隔的字符串。因此,当您$dean_ids使用[$dean_ids]它创建数组时,实际上会创建一个如下所示的数组:array(   '9,11'  )代替array(       9,       11       )数组中只有一个值。所以你可以做的只是使用explode逗号分割字符串,它也会返回一个数组。你可以试试这个:$subjects = Subject::whereIn('dean_id', explode(',', $dean_ids))->select('id')->get();
打开App,查看更多内容
随时随地看视频慕课网APP