как получить данные и объединить две таблицы в laravel с внешним ключом

Медицинский стол

введите здесь описание изображения

Таблица пациентов

введите здесь описание изображения

Медицинская модель

public function patients() {
        return $this->belongsTo(Patient::class);
        }

Модель пациента

public function medicals() {
            return $this->hasMany(Medical::class) ;
            } 

МедицинскийКонтроллер

 public function index()
    {
    
        $medicals=Medical::all();
        return view('main.medicalrecord.index',compact('medicals'));
    }

Medicalrecord.index ПОСМОТРЕТЬ

        <table class="table table-striped table-hover table-condensed">
        <thead>
          <tr>
            <th><strong>Patient No.</strong></th>//from the Patient table
            <th><strong>First Name</strong></th>//from the Patient table
            <th><strong>Middle Name</strong></th>//from the Patient table
            <th><strong>Last Name</strong></th>//from the Patient table
            <th><strong>Smoke</strong></th>//from the Medical table
          </tr>
        </thead>
        <tbody>
        @if($medicals)
            @foreach($medicals as $medical)
          <tr>
          <td>{{$medical->patient_id}}</td>
          <td></td>
          </tr>
            @endforeach
         @endif
        </tbody>
      </table>

Привет, ребята, я использую внешний ключ, который представляет собой $table-›foreign('patient_id')-›references('id')-›on('patients'); в медицинской миграции.

Как получить данные базы данных пациентов, которые являются идентификатором, именем, отчеством, фамилией и получить их в медицинскую таблицу в моем представлении, вкратце, как соединить две таблицы, которые являются таблицей пациентов и медицинской таблицей, с помощью внешнего ключа


person woofMaranon    schedule 13.08.2020    source источник


Ответы (1)


Медицинская модель

public function patient() {
   return $this->belongsTo(Patient::class);
}

Вы можете получить доступ к данным пациента, используя отношение patient из медицинского экземпляра, подобное этому.

На ваш взгляд

        @if($medicals)
            @foreach($medicals as $medical)
          <tr>
          <td>{{$medical->patient->id}}</td>
          <td>{{$medical->patient->firstname}}</td>
          <td></td>
          </tr>
            @endforeach
         @endif

Кроме того, лучше, если вы с готовностью загрузите отношение пациента в контроллер.

$medicals=Medical::with('patient')->get();
person Aashish gaba    schedule 13.08.2020
comment
где я могу поместить его в контроллер или вид? - person woofMaranon; 13.08.2020
comment
Вы можете получить к нему доступ как в контроллере, так и в представлении. - person Aashish gaba; 13.08.2020
comment
Сэр, вы можете привести примеры того, как применять в моей таблице, которую я все еще изучаю в laravel. - person woofMaranon; 13.08.2020
comment
Я видел ваш пост, и вы пытались получить к нему доступ, но это то же самое для представления и контроллера. Так что ранее я писал в общем виде. Но я добавил пример в пост. Надеюсь, поможет :) - person Aashish gaba; 13.08.2020