Отображать ник вместо идентификационного номера таблицы - PullRequest
0 голосов
/ 21 мая 2019

У меня есть две таблицы:

пользователи

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_id и target_id.Это должен быть псевдоним пользователей, а не идентификационный номер.

Ожидаемый результат

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

Кто-нибудь знает, как отобразить псевдонимвместо этого, если user_id и target_id?

1 Ответ

2 голосов
/ 21 мая 2019

Чтобы получить имя пользователя по идентификатору пользователя, вам нужно добавить 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);

Попробуй это. Я думаю, что это поможет вам достичь вашей цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...