我有一个这样的关系模式:
Siswa模型
public function kelengkapan()
{
return $this->belongsTo('Modules\PesertaDidik\Entities\SiswaKelengkapan');
}
SiswaKelengkapan模型
public function siswas()
{
return $this->hasMany('Modules\PesertaDidik\Entities\Siswa');
}
我要使用带有关联性的 select查询
在此控制器中:
$siswa = Siswa::select('nama', 'nisn', 'tempat_lahir', 'tanggal_lahir', 'jk')->with('kelengkapan')->get();
return view('pesertadidik::crud.index', compact('siswa'));
这是我的剑...
<td>{{$data->kelengkapan->kelas_masuk}}</td>
但是这样的刀片错误
Trying to get property 'kelas_masuk' of non-object
我想在表格中显示kelas_masuk
如何使用具有雄辩关系的选择查询?
答案 0 :(得分:0)
您的选择查询没有问题
您正在尝试检索null上的数据,这就是为什么您获得Trying to get property 'kelas_masuk' of non-object
控制器
$siswa = Siswa::select('nama', 'nisn', 'tempat_lahir', 'tanggal_lahir', 'jk')->with('kelengkapan')->get();
return view('pesertadidik::crud.index', compact('siswa'));
刀片文件
假设您使用的是foreach
或forloop
<td>{{ $data->kelengkapan->kelas_masuk ?? '--' }}</td> //coalescing operator
Or
<td>
@if(!is_null($data->kelengkapan))
{{ $data->kelengkapan->kelas_masuk }}
@endif
</td>
答案 1 :(得分:-1)
这里使用了get()方法,因此它会返回所有行
$siswa = Siswa::select('nama', 'nisn', 'tempat_lahir', 'tanggal_lahir', 'jk')->with('kelengkapan')->get();
return view('pesertadidik::crud.index', compact('siswa'));
在刀片中
<td>{{$siswa[0]->kelengkapan->kelas_masuk}}</td>
您还可以使用foreach循环。
@foreach($siswa as $data)
<tr>
<td>{{$data->kelengkapan->kelas_masuk}}</td>
</tr>
@endforeach