怎么用laravel的Eloquent ORM实现一条较为复杂的sql语句

SELECT t.*,u.`name` 
FROM template t 
INNER JOIN `user` u 
ON u.id = t.user_id
WHERE t.is_delete = 1 
AND ( t.title LIKE "%abc%" or u.`name` LIKE "%abc%" )

以上是我想要实现的sql语句,model模型关联关系都已经是正确的

如果在这基础上再分页 又是怎样呢

阅读 2.1k
2 个回答
Template::join('user', 'template.user_id', '=', 'user.id')
    ->where('is_delete', 1)
    ->where(function ($query) {
        $query->where('title', 'like', '%abc%')
            ->orWhere('user.name', 'like', '%abc%');
    })->skip(一页显示的记录数*(当前页-1))->take(一页显示的记录数)
    ->get();

你可以试试,写法就是这样的

paginate()或者array_slice()自己处理 试一下

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题