Php 使用透视表过滤查询
我只想问一下如何使用透视表过滤查询。我的桌子就是这样的 usersid,name 公司ID、名称 用户\公司id,用户\ id,公司\ id 我真的很想知道如何使用带有透视表的下拉列表筛选我的列表 这就是我的口才Php 使用透视表过滤查询,php,laravel,laravel-5,laravel-5.5,Php,Laravel,Laravel 5,Laravel 5.5,我只想问一下如何使用透视表过滤查询。我的桌子就是这样的 usersid,name 公司ID、名称 用户\公司id,用户\ id,公司\ id 我真的很想知道如何使用带有透视表的下拉列表筛选我的列表 这就是我的口才 public function paginate($perPage, $search = null, $status = null, $emp_status = null, $level = null, $age = null, $gender = null, $civil_st
public function paginate($perPage, $search = null, $status = null, $emp_status = null, $level = null, $age = null, $gender = null, $civil_status = null, $role_id = null, $birthmonth = null, $company = null)
{
$query = User::query();
if($company && $company != "" && $company != "All" ) {
$query->where(function ($q) use ($company) {
$q->where('id', '=', $company);
});
}
这是我的list.blade或我的下拉列表所在的位置
<div class="form-group-sm">
<select class="form-control form-control-sm" id="company" name="company">
<option selected disabled>Company</option>
@foreach ($companies as $company)
@if (($company->id)=="1")
<option>All</option>
@else
<option value="{{ $company->id }}">{{ $company->name }}</option>
@endif
@endforeach
</select>
</div>
谢谢各位专家 您可以使用whereHas方法获取用户,以下是示例
$selected_company_id = $company; //this is form input, company which you selected
$users = User::whereHas('companies', function ($query) use($selected_company_id) {
$query->where('company_id', $selected_company_id);
})->get();
这就是我尝试过的,而且成功了
$query = User::whereHas('benefits', function ($q) use($benefit) {
$q->where('benefit_id','=', $benefit);
});
你的问题不清楚,你能再解释一下吗?你要做什么。你想要什么结果?我想过滤查询,但过滤是基于用户表的,我想过滤具有相同公司的用户公司是其他表公司和用户的关系是多对多@Qaziyou仅在用户模型上添加所有条件,你能分享用户和公司关系的方法吗?我在哪里可以看到?抱歉,我只是一个初学者@qazi阅读此链接https://laravel.com/docs/5.5/eloquent-relationshipsmany-to-manyWhat 你的要求是什么?这是因为它说请求未定义variable@gwapo我更新我的答案,看看。您也可以使用$company变量代替$selected_company_id变量谢谢@Qazi的帮助。我也把我的答案贴在下面。看看it@gwapo太神奇了。。。我的答案不正确吗?是的,但你的答案中有一些tat需要修改。但是非常感谢你的帮助