美好的一天,
我想做这样的事情:
$ids = [1, 2, 3];
$posts = $user->posts()->whereIn('id', $ids)->get();
但是我收到内部服务器错误。有没有不同的方法来做到这一点?
为了这个例子,假设ID不是主键,并且多个帖子可以具有相同的ID。所以这个:
$ids = [1, 2, 3];
$posts = Post::whereIn('id', $ids)->get();
不会返回所需的结果。
答案 0 :(得分:1)
您遇到错误的原因是mysql
无法table
referring
列id
列。在tableName
clouse
whereIn()
$posts = $user->posts()->whereIn('posts.id', $ids)->get();
N.B:我认为您的Post
表格名称为posts
答案 1 :(得分:0)
请使用
$items = DB::table('items')->whereIn('id', [1, 2, 3])->get();
link:Laravel ->where('id', ARRAY). multiple where conditions laravel 4
并且
User::select('id','name','email','phone','created_at')->whereIN('id',[1,2,3,4,5,6,7,8,9,9,10,11])->where('is_guest',NULL)->where('user_type','1')->orderBy('id','desc')->take(20)->get();
也适用于laravel 5.4