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

请问怎么实现呢?

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

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 4
Epona
Article::query()
->whereHas('user' => function($query) {
    return $query->where('name', 'like', '%李%');
})->orderBy('created_at','desc')
->paginate(15);
6年前 评论
Epona (作者) 6年前
liuhaiqiang999 (楼主) 6年前
Epona (作者) 6年前

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

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

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

6年前 评论
UpGod 6年前
ppiian (作者) 6年前
User::query()->with('article')->where('name', 'like', '%李%')->orderBy('user.create_at')->get();
6年前 评论
ppiian 6年前
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);
6年前 评论

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