【问题标题】:how to get all data from 4 relation table in laravel 5.5如何从laravel 5.5中的4个关系表中获取所有数据
【发布时间】:2017-09-26 11:18:52
【问题描述】:

我是 laravel 的新手,我遇到了这个问题,我无法从关系表中获取所有数据,

这是我的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'));
}

如何从所有表中获取所有数据?例如,我想从 mahasiswa 获得 nama 吗?我不知道该怎么做......我从昨晚开始尝试搜索,但仍然没有改变任何东西......对不起我的语法错误。谢谢之前

编辑 1 无法从 ma​​ta_kuliah 表中获取数据 这是我打印数据的刀片语法

{{ $data['makul'] }}

【问题讨论】:

    标签: orm controller eloquent laravel-5.5


    【解决方案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');
        }
    }
    

    【讨论】:

    • 我尝试了这个$data = Krs::with(['mahasiswa','dosen','makul'])->first()->toArray(); return view('Krs.krsIndex',compact('data')); 但它不起作用并且错误说找不到列并且PHP的消耗RAM会很高,你有什么解决办法吗?
    • 一旦你必须在相关函数中发送 pk 和外键,请检查我的模型
    • 现在更好了,现在错误说**尝试获取非对象的属性**,,,, 我在 index.blade.php 中使用@foreach($data as $data) {{$data->name @endforeach}} 是打印数据的正确方法吗? ?
    • 是的,但首先打印 $data 然后下一个...我认为您必须访问 $data['name'] 而不是 $data->name
    • 我可以使用 $data['nim'] ,但我无法从另一个表中获取任何列,这有效 $data['nip'];这不起作用 $data['makul'];
    猜你喜欢
    • 2014-03-26
    • 2020-01-06
    • 2021-04-07
    • 1970-01-01
    • 2021-08-06
    • 2014-01-26
    • 2023-03-05
    • 1970-01-01
    • 2019-07-01
    相关资源
    最近更新 更多