原生sql怎么样使用Laravel的分页
select article_type_models.id as ad, article_type_models.name,article_models.*
from `article_models`
inner join `article_type_models` on
article_type_models.id = article_models.type
where `article_models`.`status` = 1 and article_type_models.id = 1
limit 8
我有这么一段sql 我尝试换成下面这样了
ArticleModel::where('status','1')
// ->join('article_type_models','article_models.type', '=','article_type_models.id')
// ->where('article_type_models.id',$request->typeID)
// ->paginate(8);
但是这样2个表中都有 ID字段 ID字段值发生了覆盖 我不知道怎么样 用模型的方法取一个别名来避免
能帮忙改一下吗
3 Comments
这里没有select字段,所以会出现id字段的覆盖,并且分页使用因人而异,我这里用的是skip take的这种方法,你可以参考下看看: ArticleModel::select(['article_type_models.id as ad', 'article_type_models.name as type_name', 'article_models.*']) ->where('status', '1') ->join('article_type_models', 'article_models.type', '=', 'article_type_models.id') ->where('article_type_models.id', $request->typeID) ->skip($offset) ->take($limit) ->toSql();
ArticleModel::where('status','1')
->selectRaw('article_type_models.id as ad, article_type_models.name,article_models.*')
->join('article_type_models','article_models.type', '=','article_type_models.id')
->where('article_type_models.id',$request->typeID)
->paginate(8);
这样应该是可以的
嗯谢谢你