gui*_*sen 1 php laravel eloquent laravel-4
我有两个叫做的模型Page,User并且我建立了如下的Eloquent关系:
public function user() {
return $this->belongsTo('User')
}
Run Code Online (Sandbox Code Playgroud)
当我dd(Page::with('user')->get())得到正确的结果.但是现在我想对这个结果进行搜索过滤.
我已经使用了scopeSearch但我不确定如何搜索结果集.
目前我有这样的范围:
public function scopeSearch($query, $search) {
$query->where('username', 'LIKE', '%'.$search.'%')
->orWhere('name', 'LIKE', '%'.$search.'%')
}
Run Code Online (Sandbox Code Playgroud)
所以当我Page::with('user')->search('Test')->get()不工作的时候.问题(可能)是username列是User表的name一部分,而且是表的一部分Page.
我如何能够使用范围或熟悉的东西来搜索结果集,而不是在大多数查询中重复它?
你需要scopeSearch在User模型中创建,你应该这样使用它:
$posts = Page::with('user')->whereHas('user', function($q) use ($search)
{
$q->search($search);
})->get();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3729 次 |
| 最近记录: |