сено, у меня есть 2 массива, как это
foreach($kelas as $value)
{
$siswa[] = Siswa::whereIn('id', $data[$value->nama_kelas])
->with(['ortuwali', 'wali', 'pribadi', 'penyakit'])
->with('riwayat_pendidikan')
->with(['ijazah' => function($q){
// $q->with(['nilaiujianakhir'])
// ->with(['mapelujian' => function($q){
// $q->select('mapelujian.nama_mapel','nilaiujianakhir.*')
$q->join('mapel', 'mapel.id', 'nilai_ujian.mapel_id')
// ->join('mapelujian','mapelujian.id','nilaiujianakhir.mapel_ujian_id');
// }])
->get();
// $q->join('mapel', 'mapel.id', 'nilai_ujian.mapel_id')->get();
}])
->with(['nilaiujianakhir' => function($q2){
$q2->join('mapel_ujian', 'mapel_ujian.id', 'nilai_ujianakhir.mapel_ujian_id')->get();
}])
->with(['kelas' => function($q) {
$q->with(['ptk', 'sikap', 'prestasi'])
->with(['pembelajaran' => function($q) {
$q->select('pembelajaran.*', 'mapel.id as mapelid', 'mapel.urut_rapor')
->join('mapel', 'mapel.id', '=', 'pembelajaran.mapel_id')
->with('nilai.kkm')
->orderByRaw('ISNULL(mapel.urut_rapor), CAST(mapel.urut_rapor AS DECIMAL) ASC');
}])
->orderBy('semester_id');
}])
// ->with(['kelas.ptk','kelas.sikap', 'kelas.prestasi'])
// ->with([
// 'kelas.pembelajaran' => function ($q) {
// $q->select('pembelajaran.*', 'mapel.id as mapelid','mapel.urut_rapor')
// ->join('mapel', 'mapel.id', '=', 'pembelajaran.mapel_id')
// ->with('nilai.kkm')
// ->orderByRaw('ISNULL(mapel.urut_rapor), CAST(mapel.urut_rapor AS DECIMAL) ASC');
// }
// ])
->orderBy('nama')
->get();
}
$siswa[] = Siswa::whereIn('id', $pindahan)
->with(['ortuwali', 'wali', 'pribadi', 'penyakit', 'riwayat_pendidikan'])
->with(['ijazah' => function($q){
// $q->with(['nilaiujianakhir'])
// ->with(['mapelujian' => function($q){
// $q->select('mapelujian.nama_mapel','nilaiujianakhir.*')
$q->join('mapel', 'mapel.id', 'nilai_ujian.mapel_id')
// ->join('mapelujian','mapelujian.id','nilaiujianakhir.mapel_ujian_id');
// }])
->get();
// $q->join('mapel', 'mapel.id', 'nilai_ujian.mapel_id')->get();
}])
->with(['nilaiujianakhir' => function($q2){
$q2->join('mapel_ujian', 'mapel_ujian.id', 'nilai_ujianakhir.mapel_ujian_id')->get();
}])
->with(['kelas' => function($q) {
$q->with(['ptk', 'sikap', 'prestasi'])
->with(['pembelajaran' => function($q) {
$q->select('pembelajaran.*', 'mapel.id as mapelid', 'mapel.urut_rapor')
->join('mapel', 'mapel.id', '=', 'pembelajaran.mapel_id')
->with('nilai.kkm')
->orderByRaw('ISNULL(mapel.urut_rapor), CAST(mapel.urut_rapor AS DECIMAL) ASC');
}])
->orderBy('semester_id');
}])
// ->with(['kelas.ptk','kelas.sikap', 'kelas.prestasi'])
// ->with([
// 'kelas.pembelajaran' => function ($q) {
// $q->select('pembelajaran.*', 'mapel.id as mapelid','mapel.urut_rapor')
// ->join('mapel', 'mapel.id', '=', 'pembelajaran.mapel_id')
// ->with('nilai.kkm')
// ->orderByRaw('ISNULL(mapel.urut_rapor), CAST(mapel.urut_rapor AS DECIMAL) ASC');
// }
// ])
->orderBy('nama')
->get();
, и я объединяю массив siswa с этой функцией
$siswas = new Collection;
foreach($siswa as $value)
{
$siswas = $siswas->merge($value);
}
в блейде, я вызываю объект, подобный этому для каждого отношения
$siswa->pribadi->berat_badan_diterima
$siswa->pribadi->berat_badan_keluar
$siswa->pribadi->tinggi_badan_diterima
и я получаю ошибку при попытке получить свойство berat badan diterima для необъекта
я уже загружаю свой код в блейд-файл следующим образом:
$siswa->pribadi['berat_badan_diterima']
$siswa->pribadi['berat_badan_keluar']
$siswa->pribadi['tinggi_badan_diterima']
и код работает , но это неэффективно, я должен изменить много строк в блейд-файле и много файловых блейдов для изменения формата, я хочу изменить код из контроллера это code ..
$siswas = new Collection;
foreach($siswa as $value)
{
$siswas = $siswas->merge($value);
}
как изменить контроллер кода выше, чтобы не возникало ошибок при попытке получить свойство не объекта ?
Спасибо