小编典典

Laravel 5.1:使用相同列名的句柄联接

sql

我正在尝试从数据库中获取以下内容:

  • 用户名
  • 用户avatar_name
  • 用户avatar_filetype
  • 完成对话消息

使用以下查询:

    static public function getConversation($id)
{
    $conversation = DB::table('conversation_messages')
        ->where('belongsTo', $id)
        ->join('users', 'conversation_messages.sender', '=', 'users.id')
        ->join('user_avatars', 'conversation_messages.sender', '=', 'user_avatars.id')
        ->select('users.name', 'conversation_messages.*', 'user_avatars.name', 'user_avatars.filetype')
        ->get();
    return $conversation;
}

到目前为止,它可以正常工作,但是头像的列名是’ name‘,就像’
users‘表中的列名一样。因此,如果我使用的查询来通过获取输出$conversation->name,则avatar.name覆盖users.name

有没有办法在laravel 5.1中重命名查询输出(如mysql的“ as”功能)?

例如:

$conversation->avatarName

$conversation->userName

阅读 177

收藏
2021-04-15

共1个答案

小编典典

嗯,好吧..我在这里找到了一个简单的解决方案

->select('users.name as userName', 'conversation_messages.*', 'user_avatars.name as avatarName', 'user_avatars.filetype')

如您所提到的,我已经在table.columnName旁边添加了请求的“按功能”

2021-04-15