как получить все данные из 4 таблиц отношений в laravel 5.5

Я новичок в laravel, и я застрял в этой проблеме, где я не могу получить все данные из таблицы отношений,

Это мой ERD: это моя база данных ERD

Это моя модель Krs.php:

protected $fillable = ['nim','nip','kode_mk','absen','uts','uas'];
protected $table = 'krs';

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

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

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

Это моя модель Matakuliah.php:

protected $fillable = ['kode_mk','makul','sks'];
protected $table = 'mata_kuliah';

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

Это моя модель Dosen.php:

protected $fillable =['nip','nama','jeniskelamin','alamat','notlp'];
protected $table='dosen';

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

Это моя модель Mahasiswa.php:

protected $fillable = ['nim','nama','alamat','jenis_kelamin','no_tlp','email','tempat','tanggal','link','id_jurusan'];
protected $table = 'mahasiswa';

public function jurusan(){
    return $this->hasOne('App\Jurusan');
}

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

и вот мой KrsController.php:

 public function index()
{
   $data = Krs::with(['mahasiswa','dosen','makul'])->first()->toArray();
    return view('Krs.krsIndex',compact('data'));
}

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

Edit 1 не может получить данные из таблицы mata_kuliah, это синтаксис моего блейда для печати данных

{{ $data['makul'] }}

person Deki Akbar    schedule 26.09.2017    source источник


Ответы (1)


Использование функции with():

$client_profile = Client::where([['cid', '=', $cid], ['is_delete', '=', 0]])->with(['status', 'group_no', 'caseworker', 'clerk', 'active_attendants'])->first()->toArray();

ниже моя модель:

 class Client extends Model {
    public function status() {
        return $this->hasOne('App\Models\Status', 'sid', 'status');
    }

    public function group_no() {
        return $this->hasOne('App\Models\ClientGroups', 'cgid', 'group_no');
    }

    public function caseworker() {
        return $this->hasOne('App\Models\Caseworker', 'cwid', 'caseworker_name');
    }

    public function clerk() {
        return $this->hasOne('App\Models\Supervisorsnurses', 'snid', 'clerk');
    }

    public function active_attendants() {
        return $this->hasMany('App\Models\AssociatedTask', 'cid');
    }

    public function location() {
        return $this->hasOne('App\Models\Locations', 'lid', 'location');
    }
}
person Rahul Pawar    schedule 26.09.2017
comment
Я пробую это $data = Krs::with(['mahasiswa','dosen','makul'])->first()->toArray(); return view('Krs.krsIndex',compact('data'));, но это не работает, и ошибка говорит о том, что столбцы не найдены, и потребление ОЗУ PHP будет высоким, у вас есть какое-либо решение? - person Deki Akbar; 26.09.2017
comment
Проверьте мою модель, как только вам нужно отправить pk и внешний ключ в функции отношения - person Rahul Pawar; 26.09.2017
comment
стало лучше, и теперь ошибка говорит: ** Попытка получить свойство не-объекта **,,,, я использую @foreach($data as $data) {{$data->name @endforeach}} в index.blade.php, это правильный способ печати данных?? - person Deki Akbar; 26.09.2017
comment
да, но сначала напечатайте $data, затем затем... Я думаю, вам нужно получить доступ к $data['name'] вместо $data-›name - person Rahul Pawar; 26.09.2017
comment
я могу использовать $data['nim'] , но я не могу получить столбец из другой таблицы, это работает $data['nip']; это не работает $data['makul']; - person Deki Akbar; 26.09.2017
comment
обновите свой вопрос .. как вы пытаетесь, дайте мне знать - person Rahul Pawar; 26.09.2017