laravel ---- 关联表 A 和 B 如何模糊查询 B 表中指定的字段

如何查询B表中比如有个content字段 ,模糊 like B中的某个值

如 文章表A Article

id   title   content   user_id

用户表 B User

id   name

模型

public function  user(){
    return $this->belongsTo(User::class);
}

伪代码

Article::with(['user'])
 //想通过 文章作者的名字 模糊查询  比如 姓李的所有的文章
 //伪代码
//->where('user.name', 'like','%'.$name.'%');
->orderBy('created_at','desc')
->paginate(15);

请问怎么实现呢?

还想通过作者的的创建时间进行排序?

阅读 2.6k
2 个回答
Article::with(['user'=>function($query) use($name) {
    //想通过 文章作者的名字 模糊查询  比如 姓李的所有的文章
    $query->where('name', 'like','%'.$name.'%');
}])
Article::whereHas('user', function($builder) {
    $builder->where('user.name', 'like', "%{$name}%");
})->orderBy('created_at', 'desc')
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题