-3

Help, I get an error message ErrorException (E_NOTICE) Trying to get property 'sentimen' of non-object

    public function prediksi()
        {
            $collection = array();
            $title = "Data Prediksi Sentimen";
            $testing_data = DataTesting::count();
            $klasifikasi = DataTesting::with(['data_crawling','klasifikasi'])->get();
            foreach($klasifikasi as $class){
                $prediksi = Klasifikasi::with(['sentimen'])->where('id_testing',$class->id_testing)->first();
                $hasil = Hasil::where('id_testing',$class->id_testing)->get();
                $aktual = Sentimen::where('id_sentimen', $class->data_crawling->id_sentimen)->first();
                $collection[] = [
                    'id_testing' => $class->id_testing,
                    'username' => $class->data_crawling->username,
                    'tweet' => $class->data_crawling->tweet,
                    'kategori' => $aktual->kategori,
                    'prediksi' => $prediksi->sentimen->kategori,
                ];
            }

            return view('visualisasi.prediksi', compact(['title','collection','testing_data','hasil']));
        }

View Code

Has QUIT--Anony-Mousse
  • 76,138
  • 12
  • 138
  • 194
Listyawan
  • 11
  • 5

1 Answers1

1

Think if your queries and relationship is correct then use like below with IF() conditions

public function prediksi()
    {
        $collection = array();
        $title = "Data Prediksi Sentimen";
        $testing_data = DataTesting::count();
        $klasifikasi = DataTesting::with(['data_crawling','klasifikasi'])->get();
        foreach($klasifikasi as $class){
            $prediksi = Klasifikasi::with(['sentimen'])->where('id_testing',$class->id_testing)->first();
            $hasil = Hasil::where('id_testing',$class->id_testing)->get();
            $aktual = Sentimen::where('id_sentimen', $class->data_crawling->id_sentimen)->first();
            if($prediksi && isset($prediksi->sentimen)){
                  $collection[] = [
                'id_testing' => $class->id_testing,
                'username' => $class->data_crawling->username,
                'tweet' => $class->data_crawling->tweet,
                'kategori' => $aktual->kategori,
                'prediksi' => $prediksi->sentimen->kategori,
            ];
            }
        }

        return view('visualisasi.prediksi', compact(['title','collection','testing_data','hasil']));
    }

UPDATED

public function prediksi()
        {
            $collection = array();
            $title = "Data Prediksi Sentimen";
            $testing_data = DataTesting::count();
            $klasifikasi = DataTesting::with(['data_crawling','klasifikasi'])->get();
            foreach($klasifikasi as $class){
                $prediksi = Klasifikasi::with(['sentimen'])->where('id_testing',$class->id_testing)->first();
                $hasil = Hasil::where('id_testing',$class->id_testing)->get();
                $aktual = Sentimen::where('id_sentimen', $class->data_crawling->id_sentimen)->first();
                if($prediksi && isset($prediksi->sentimen)){
                      $collection[] = [
                    'id_testing' => $class->id_testing,
                    'username' => $class->data_crawling->username,
                    'tweet' => $class->data_crawling->tweet,
                    'kategori' => $aktual->kategori,
                    'prediksi' => $prediksi->sentimen->kategori,
                ];
                 $hasil_data[$class->id_testing][] = $hasil;
                }
            }

            return view('visualisasi.prediksi', compact(['title','collection','testing_data','hasil_data']));
        }

then in your view when you foreach you collection data

foreach($collection as $key){

  //to use hasil data
  foreach($hasil_data[$key['id_testing']] as $hasil){
     dd($hasil);

  }
}
Hamelraj
  • 4,676
  • 4
  • 19
  • 42