【发布时间】:2019-07-08 12:58:21
【问题描述】:
我使用belongsToMany 函数创建了多对多关系:
class Doctor extends Model
{
...
public function categories()
{
return $this->belongsToMany('App\Category', 'doctors_to_categories', 'doctor_id', 'category_id');
}
...
}
现在我想创建具有多对多条件的查询。在 SQL 中将是:
SELECT *
FROM `doctors`
JOIN `doctors_to_categories`
ON `doctors_to_categories`.`doctor_id` = `doctors`.`id`
WHERE `doctors_to_categories`.`category_id` = 1
我尝试过这样的实现:
$doctors = Doctor::with(['categories' => function($query) {
$query->where('category_id', '=', 1);
}])->get();
或者
$doctors = Doctor::with(['categories' => function($query) {
$query->where('categories.id', '=', 1);
}])->get();
但它不起作用。任何想法应该如何?感谢您的帮助。
【问题讨论】:
标签: php mysql laravel eloquent relationship