Объект класса stdClass не может быть преобразован в строку в Laravel? - PullRequest
1 голос
/ 11 апреля 2019

Я попытался отфильтровать данные на основе таблиц 'Jadwal_kuliah' и 'khs', но обнаружил ошибку «Объект класса stdClass не может быть преобразован в строку»:

function jadwal_kuliah_json()
{
    $nim = Auth::guard('mahasiswa')->user()->nim;

    $tahun_akademik = \DB::table('tahun_akademik')->where('status', 'y')->first();

    $kelas = \DB::table('khs')
        ->select('kode_kelas')
        ->where('nim', $nim)
        ->get();

    $jadwal = \DB::table('jadwal_kuliah')
        ->join('khs', 'jadwal_kuliah.kode_mk', '=', 'khs.kode_mk')
        ->where('jadwal_kuliah.kode_kelas', $kelas)
        ->where('khs.nim', $nim)
        ->select('matakuliah.nama_mk', 'jadwal_kuliah.hari', 'jam_kuliah.jam', 'ruangan.nama_ruangan', 'dosen.nama', 'kelas.nama_kelas')
        ->get();

    return Datatables::of($jadwal)->make(true);
}

JSON

{
    "id": 36,
    "kode_kelas": "TI18A",
    "hari": "senin",
    "kode_mk": "TI001",
    "nidn": "15110185",
    "jam": "1",
    "kode_jurusan": "ifd3",
    "kode_ruangan": "LBKom",
    "kode_tahun_akademik": "20182",
    "semester": 1,
    "created_at": "2019-02-28 15:02:52",
    "updated_at": "2019-02-28 15:02:52"
}

Что нужно изменить?

1 Ответ

1 голос
/ 11 апреля 2019

$kelas - это коллекция, и вы передаете ее как строковое условие в:

->where('jadwal_kuliah.kode_kelas',$kelas)

Сначала верните объект, используя first(), например:

$kelas = \DB::table('khs')
          ->select('kode_kelas')
          ->where('nim',$nim)
          ->first();

Тогда вы должны получить свойство, как:

->where('jadwal_kuliah.kode_kelas',$kelas->kode_kelas)
...