Я хочу отобразить столбец из 2 таблиц Laravel - PullRequest
0 голосов
/ 09 мая 2018

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

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

Я знаю, что в контроллере это можно сделать с помощью внутреннего соединения:

$users= DB::table('teachers')
->select('name')
->join('users', 'users.id', '=', 'teachers.id')
->get();  

но в шаблоне лезвия я не знаю, как отобразить для каждого учителя, когда я делаю это

<a class="ahref" href={{route('users')}}> <div class="blueDecor">

         <p style="text-transform: uppercase;"> {{$teacher->name}} </p>

        </div>
    </a>

и когда для {{route ('users')}}:

   @foreach($users as $user)

{{$ user-> name}}

@ Endforeach

и тут шоу для всех учителей появляется всех пользователей

например Учителя: когда я нажимаю на Теодора, чтобы отобразить Анну, Мария.

Теодор -----------------------> Пользователи: Анна, Мария

Александр ----------------------> Пользователи: София, Алекс, Патрик

Сара --------------------------> Пользователи: Рик, Джордж

пожалуйста, помогите мне: (

1 Ответ

0 голосов
/ 10 мая 2018

Вам нужно использовать отношения Laravel, чтобы достичь этого В вашем случае это будут отношения один к одному между двумя моделями (пользователями и учителями).

Пожалуйста, перейдите по ссылке ниже https://laravel.com/docs/5.6/eloquent-relationships#one-to-one

Вам необходимо определить отношение в обеих моделях. Скажем для примера ваш

таблица пользователей. Имя модели: Users

стол для учителей Модель называется Teachers

Создать одно отношение в пользователе

public function UserTeacher()
{
 return $this->hasOne("\App\Models\Teachers","id","id");
}

Создать одно отношение в Учителях

public function TeacherUser()
{
 return $this->hasOne("\App\Models\Users","id","id");
}

Вы можете получить доступ к данным, как показано ниже

$data = Users::with('UserTeacher')->get();

Передайте переменную $ data в блейд-файл и получите к нему доступ:

{{$data->UserTeacher->name}}

Я попытался создать пример на основе ограниченных данных, имеющихся в вашем вопросе. Вы можете изменить его соответствующим образом.

...