Laravel Eloquent Relationships找不到或找到

时间:2016-10-25 08:54:39

标签: php laravel laravel-5 eloquent relationship

如果您有两个模型Post和Comment,并且在Comment模型中您定义了一个belongsTo(),称为posts的关系,我知道可以这样做:

java.io.IOException: RESTEASY007550: Unable to get boundary for multipart

但我想要的是将多个主键id传递给方法find:

App\Comment::find(1)->posts()->where('category', 3)->get()

或者

App\Comment::find([1,2,3])->posts()->where('category', 3)->get()

这两个给了我错误App\Comment::findMany([1,2,3])->posts()->where('category', 3)->get() 。那么我怎么能处理这个问题呢?

3 个答案:

答案 0 :(得分:1)

当您使用find()方法时,您会获得一个模型,但findMany()会返回一个集合。

你可能想要的是:

App\Comment::whereIn('id', [1, 2, 3])->with(['posts' => function($q) {
    $q->where('category', 3);
}])->get();

答案 1 :(得分:0)

这对我有用@Lukasgeiter他在查询中使用with和whereHas的组合。

答案 2 :(得分:-4)

为此你必须使用回调方法,如下面的

App\Comment::whereIn('id', [1, 2, 3])->with(['posts' => function($query) {
     $query->whereCategory(3);
}])->get();