как показать в представлении объект и атрибут другой таблицы - PullRequest
0 голосов
/ 29 мая 2020

Ну, я использую laravel, у меня есть две таблицы, одна для пользователей, а другая для ролей, и я показываю в представлении таблицу с каждым пользователем с его атрибутами, а также ролью, которую они связали. проблема в том, что атрибутом является идентификатор, а то, что отображается, является идентификатором таблицы ролей, как мне показать имя роли вместо идентификатора?

Это функция, в которой я получаю список users:

public function index()
{

    $users = User::latest()->get();
    return view('users.index', [
        'users'=>$users,
    ]);
}

и это представление, в котором я создаю таблицу для отображения атрибутов, а в атрибуте role_id у меня есть только номер, связанный с таблицей ролей. когда мне действительно нужно показать имя.

            @foreach($users as $user)
                <tr>
                    <td>{{$user->name}}</td>
                    <td>{{$user->last_name}}</td>
                    <td>{{$user->age}}</td>
                    <td>{{$user->DOB}}</td>
                    <td>{{$user->height}}</td>
                    <td>{{$user->role_id}}</td>
                    <td><a href="{{$user->path_edit()}}">Edit</a> <a href="/users/{{$user->id}}/destroy" > - Delete </a></td>

                </tr>
            @endforeach

Это база данных:

enter image description here

1 Ответ

1 голос
/ 29 мая 2020

Установите связь с вашим пользователем с помощью таблицы ролей. Напишите приведенный ниже код в своей модели пользователя

    public function role()
    {
        return $this->belongsTo(Role::class);
    }

Используйте его в своем файле просмотра

<td>{{$user->role->name}}</td>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...