关联表 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);

请问怎么实现呢?

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

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 4
Epona
Article::query()
->whereHas('user' => function($query) {
    return $query->where('name', 'like', '%李%');
})->orderBy('created_at','desc')
->paginate(15);
4年前 评论
Epona (作者) 4年前
liuhaiqiang999 (楼主) 4年前
Epona (作者) 4年前

作者的创建时间是user表的created_at

Article::with('user')->get()->sortBy('user.created_at');

先查询在排序,如果要用sql实现的话,就要用关联查询了,但是我觉的数据不大的情况下,这样子简便一点
降序用 sortByDesc 方法

4年前 评论
UpGod 4年前
ppiian (作者) 4年前
User::query()->with('article')->where('name', 'like', '%李%')->orderBy('user.create_at')->get();
4年前 评论
ppiian 4年前
Article::when(request('name',''),function($query,$name){
   $query->whereHas('user' => function($query)use($name) {
        $query->where('name', 'like',$name);
   })
})
->orderBy('created_at','desc')
->paginate(15);
4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!