Laravel在哪里发行

时间:2018-04-17 09:00:48

标签: php laravel eloquent

美好的一天,

我想做这样的事情:

$ids = [1, 2, 3];
$posts = $user->posts()->whereIn('id', $ids)->get();

但是我收到内部服务器错误。有没有不同的方法来做到这一点?

为了这个例子,假设ID不是主键,并且多个帖子可以具有相同的ID。所以这个:

$ids = [1, 2, 3];
$posts = Post::whereIn('id', $ids)->get();

不会返回所需的结果。

2 个答案:

答案 0 :(得分:1)

您遇到错误的原因是mysql无法table referringid列。在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