Php Laravel WHERHAS()未按where子句正确筛选
我正在尝试按姓名搜索玩家,按姓名/电子邮件地址搜索他们的父母。出于某种原因,下面的语句正在拉所有玩家,不管我输入的搜索词是什么 在下面的示例中,“guardian”引用了Php Laravel WHERHAS()未按where子句正确筛选,php,laravel,Php,Laravel,我正在尝试按姓名搜索玩家,按姓名/电子邮件地址搜索他们的父母。出于某种原因,下面的语句正在拉所有玩家,不管我输入的搜索词是什么 在下面的示例中,“guardian”引用了users表 $players = Player::where('first_name', 'LIKE', '%'.Input::get('q').'%') ->orWhere('last_name', 'LIKE', '%'.Input::get('q').'%') ->or
users
表
$players = Player::where('first_name', 'LIKE', '%'.Input::get('q').'%')
->orWhere('last_name', 'LIKE', '%'.Input::get('q').'%')
->orWhereHas('guardian', function ($q) {
$q->where('users.first_name', 'LIKE', '%'.Input::get('q').'%')
->orWhere('users.last_name', 'LIKE', '%'.Input::get('q').'%')
->orWhere('email', 'LIKE', '%'.Input::get('q').'%');
})
->with('guardian')
->orderBy('last_name', 'ASC')
->orderBy('first_name', 'ASC')
->paginate(25);
也许这只是漫长的一天。。。但我想我错过了什么
例如:
我认为应该在where语句之前调用with()方法。 也许是这样的:
$players = Player::with('guardian')
->where('first_name', 'LIKE', '%'.Input::get('q').'%')
->orWhere('last_name', 'LIKE', '%'.Input::get('q').'%')
->orWhereHas('guardian', function ($q) {
$q->where('users.first_name', 'LIKE', '%'.Input::get('q').'%')
->orWhere('users.last_name', 'LIKE', '%'.Input::get('q').'%')
->orWhere('email', 'LIKE', '%'.Input::get('q').'%');
})
->orderBy('last_name', 'ASC')
->orderBy('first_name', 'ASC')
->paginate(25);