【发布时间】:2015-09-11 15:49:40
【问题描述】:
我遇到了一个不知道如何解决的问题。 我的公司有个人资料(个人资料属于公司)和地点(公司有很多地点)。
我正在尝试获取所有名称类似于 $request->input('search_term') 并且至少有一个位置的邮政编码或城市与 $request->input('search_addition') 匹配的公司以及类型为 0 的个人资料。
我的代码是:
$companies = Company::with(['profile' => function ($query) {
$query->where('type', 0);
}])
->whereHas('locations', function ($query) use ($request) {
$query->where('zip', 'like', '%'.$request->input('search_addition').'%')
->orWhere('city', 'like', '%'.$request->input('search_addition').'%');
})
->where('name', 'like', '%'.$request->input('search_term').'%');
最后我添加$companies = $companies->paginate(25);
我得到的结果不是我想要的。我得到了所有名称如$request->input('search_term') 的公司。它忽略配置文件的类型和位置。对于那些与指定的 search_addition 不匹配但仍返回公司的公司,位置数组为空。
【问题讨论】:
标签: eloquent laravel-5.1