我有两个模型Base_voter和Custom_list
public function base_voters()
{
return $this->hasMany('App\Models\Base_voter', 'custom_pivot_base', 'custom_list_id', 'base_voter_id');
}
public function custom_lists()
{
return $this->belongsToMany('App\Models\Custom_list', 'custom_pivot_base', 'custom_list_id', 'base_voter_id');
}
有具有两列的数据透视表custom_pivot_base
custom_list_id, base_voter_id
现在,我需要检索其customer_list_id = 1且street = $ street的base_voter列表,其中city = $ city。这些地址和城市列在base_voters表中。如何在Laravel中雄辩地做到这一点
答案 0 :(得分:1)
在Custom_list
模型中更改您的关系
public function base_voters()
{
return $this->belongsToMany('App\Models\Base_voter', 'custom_pivot_base', 'custom_list_id', 'base_voter_id');
}
还可以在Base_voter
模型中更改您的关系
public function custom_lists()
{
return $this->belongsToMany('App\Models\Custom_list', 'custom_pivot_base', 'base_voter_id', 'custom_list_id');
}
您需要获取base_voter
的{{1}}列表,这意味着按ID 1提取customer_list_id = 1
,然后获取其相关的customer_list
。像这样
base_voters
现在您可以像这样打印它了
$customList = Custom_list::with(['base_voters' => function($query) use ($city, $gender){
$query->where('city',$city)->where('gender', $gender);
}])->find(1);
答案 1 :(得分:-1)
您正在寻找的是“ hasManyThrough”关系。 https://laravel.com/docs/5.6/eloquent-relationships#has-many-through
请仔细阅读本文档并定义模型之间的关系。