thinkphp JOIN操作后左表的ID出问题了

thinkphp5

有3个表
article:id、type_id、author_id
type:id、type_name
author:id、author_name

控制器里加载了article模型

$artilcelist = ArtilceModel::alias('a')
        ->join('type b','a.type_id = b.id')
        ->join('author c','a.author_id = c.id')
        ->order('a.id desc')
        ->select();
        

在前台用volist输出:

{volist name="artilcelist" id="news"}
{$news.id}
{$news.type_name}
{$news.author_name}
{/volist}

其中{$news.type_name}、{$news.author_name}没有问题,但{$news.id}显示的ID是author表里的ID,而不是article。如果将2个join语句替换顺序,显示的就是type表里的ID。

请问如何能将article里的ID正确输出,谢谢。

自己想到个办法,在order之前,

->field('a.id,b.type_name,c.author_name')

通过filed的设定值显示article里的id

阅读 3.7k
1 个回答
新手上路,请多包涵

假如需要三个表的id
->field('a.id as aid ,b.id as bid ,c.id as cid')

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