首页 > 解决方案 > 选择具有关系 laravel 一对多的查询

问题描述

我有这样的关系模式:

模型 Siswa

    public function kelengkapan()
{
    return $this->belongsTo('Modules\PesertaDidik\Entities\SiswaKelengkapan');
}

模型 SiswaKelengkapan

 public function siswas()
{
    return $this->hasMany('Modules\PesertaDidik\Entities\Siswa');
}

我想将选择查询与关系一起使用

在这个控制器中:

        $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,

如何使用关系 eloquent 的选择查询?

标签: laravel

解决方案


您的选择查询没有问题

您正在尝试检索 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'));

刀片文件

假设您正在使用foreachforloop

<td>{{ $data->kelengkapan->kelas_masuk ?? '--' }}</td> //coalescing operator

Or

<td>
  @if(!is_null($data->kelengkapan))
      {{ $data->kelengkapan->kelas_masuk }} 
  @endif
</td>

推荐阅读