Как включить объединенные данные в цикл - PullRequest
0 голосов
/ 06 ноября 2019

Я показываю список в моем блэйд-представлении, который содержит данные из таблицы отображения: имя, школа и IP.

Школа сохранена в виде школьного идентификатора в этой таблице.

Таблица «Школы» содержит список идентификаторов и связанных с ними школ.

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

Я могу получить эти данные отдельно.

Получает все данные из таблицы отображения

$records = DB::table('display')->paginate(10);

Получает все названия школ из таблицы школ.

$schools = DB::table('schools')
   ->join('display', 'schools.id', '=', 'display.school')  
   ->select('schools.name')
   ->get();

Чтобы отобразить данные изотображение таблицы Я использую цикл foreach.

@foreach ($records as $record)
{{ $record->name }}
{{ $record->school }}
{{ $record->ip }}
@endforeach

Я не знаю, как вставить название школы в область, где в данный момент отображается $ record-> school. $ record-> school отображает идентификатор школы, но я хочу отобразить название школы, которое сохранено в школьной таблице.

Дисплей модели

public function school()
    {
        return $this->belongsTo('App\School');
    }

Школьная модель

public function display()
    {
        return $this->hasMany('App\Display');
    }

Ответы [ 2 ]

1 голос
/ 06 ноября 2019

Если у вас есть модели и Eloquent отношений, вы можете просто использовать его:

Контроллер

$records = Display::with('school')->paginate(10);

Blade view

@foreach ($records as $record)
  {{ $record->name }}
  {{ $record->school->name }} <!-- school name via relation -->
  {{ $record->ip }}
@endforeach

Модель дисплея

class Display extends Model
{
    public function school()
    {
        return $this->hasOne('App\School');
    }
}
0 голосов
/ 06 ноября 2019

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

 $records = DB::table('display')
  ->join('schools', 'schools.id', '=', 'display.school')  
  ->paginate(10);

@foreach ($records as $record)
  {{ $record->name }}
  {{ $record->schools->name }}
  {{ $record->ip }}
@endforeach
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...