Php Laravel 8 |如何在同一个表上连接两个外键

Php Laravel 8 |如何在同一个表上连接两个外键,php,jquery,laravel,orm,Php,Jquery,Laravel,Orm,字段'to_user_id'和'from_user_id'是用户表上的两个id,因为它们具有不同的值如何将我的模型“Message”与用户表联接 $my_inbox=Message::select('messages.*', 'users.name toUser', 'users.name as fromUser') ->join('users', 'users.id', '=', 'to_user_id.user_id') ->

字段'to_user_id''from_user_id'是用户表上的两个id,因为它们具有不同的值如何将我的模型“Message”与用户表联接

   $my_inbox=Message::select('messages.*', 'users.name toUser', 'users.name as fromUser')
            ->join('users', 'users.id', '=', 'to_user_id.user_id')
            ->join('users', 'users.id', '=', 'from_user_id.user_id')
            ->get();

使用不同的别名连接同一个表。您可以看到,选择同一字段与所需内容相冲突

$my_inbox=Message::select('messages.*', 'receiver.name toUser', 'sender.name as fromUser')
            ->join('users as receiver', 'receiver.id', '=', 'to_user_id.user_id')
            ->join('users as sender', 'sender.id', '=', 'from_user_id.user_id')
            ->get();
或者如果您在Message类和user类中设置了正确的关系

$my_inbox = $loggedUser->receivedMessages()->with('sender')->get();

使用不同的别名连接同一个表。您可以看到,选择同一字段与所需内容相冲突

$my_inbox=Message::select('messages.*', 'receiver.name toUser', 'sender.name as fromUser')
            ->join('users as receiver', 'receiver.id', '=', 'to_user_id.user_id')
            ->join('users as sender', 'sender.id', '=', 'from_user_id.user_id')
            ->get();
或者如果您在Message类和user类中设置了正确的关系

$my_inbox = $loggedUser->receivedMessages()->with('sender')->get();

请尝试以下操作:->join('users as u1'、'u1.id'、'='、'to_user_id.user_id')->join('users as u2'、'u2.id'、'='、'from_user_id.user_id')正如@Abdel azizhassan所示,您需要设置不同的别名来连接同一个表。请尝试以下操作:->join('users as u1'、'u1.id'、'、'='、'to_user_id.user_id')->join('users as u2','u2.id','=','from_user_id.user_id')正如@Abdel azizhassan所示,您需要设置不同的别名来加入同一个表。