我创建了2个模型,“发布”和“类别”。这是一对多关系,效果很好。
我的表格如下:
我们假设我想过滤与名称相关的所有帖子:“类别1”
public function scopeFilterCategory($query) {
$query->join(????); // My problem is to replace the ???
$query->where('title', '=', 'Category 1');
return $query;
}
我不熟悉10月和laravel,我被困在这里。对于laravel专家来说可能非常简单,但我需要一个有效的例子,因为我尝试过的所有事情都失败了:/
感谢您的帮助
答案 0 :(得分:2)
laravel有" whereHas":
https://laravel.com/docs/5.5/eloquent-relationships#querying-relationship-existence
在帖子模型上,您需要编写此查询:
$posts = Post::whereHas($relationName, function ($query) {
$query->where('title', =, 'Category 1');
})->get();
$ relationName - 应该是定义模型中关系的函数的名称(等等:'类别')