显示昵称而不是表格的ID号

时间:2019-05-21 10:55:21

标签: mysql laravel

我有两个表:

用户

id nickname
1   Mike
2   John

报告

id    user_id   target_id
1       1          2     
2       2          1 

MyController

public function violationView(User $user)
{   
    $vio = Report::all(); //this should be query, but I don't know how.
    return view('admin.violation.vio_listpage')
            ->with('vio', $vio);
}

当我在刀片中显示$vio时,它仅显示user_idtarget_id。这些应该是用户的昵称,而不是ID号。

预期产量

ID   user_name(user_id)   username(target_id)
1      Mike                  John
2      John                  Mike

如果user_idtarget_id,有人知道如何显示昵称吗?

1 个答案:

答案 0 :(得分:2)

要通过用户ID获取用户名,您需要在查询中添加join。下面是该示例:-

$vio = Violation::join('users', function($q) {
        $q->on('users.id', '=', 'report.user_id');
    })
    ->join('users as target', function($q) {
        $q->on('target.id', '=', 'report.target_id');
    })
    ->selectRaw("report.*, users.nickname as user_name, target.nickname as target_user_name")
    ->get();
return view('admin.violation.vio_listpage')
        ->with('vio', $vio);

尝试一下。我认为这将帮助您实现目标。