Как проверить, существует ли запись в базе данных или нет, используя laravel?

Я пытаюсь проверить, не существует ли запись, тогда я сделаю вставку, но она не работает. Это мой код:

//check if nomor permohonan is exist
        $data_pemohon = DB::table('data_pemohon')->select('*')->where('noper', $noper)->get();
        if(is_null($data_pemohon)){
            return response(null);          
        }else{
            $data_antrian   = DB::table('antrian_sp')->select('*')->where('noper', $noper)->first();
            if(is_null($data_antrian)){
                $nama        = DB::table('data_pemohon')->select('nama')->where('noper', $noper)->first();
                $status      = DB::table('data_pemohon')->select('status_paspor')->where('noper', $noper)->first();
                $data       = array('tanggal'=>$tanggal, 'jam'=>$jam, 'noper'=>$noper, 'nama'=>$nama->nama, 'status'=>$status->status_paspor);
                $add_antrian= DB::table('antrian_sp')->insert($data);

                if($add_antrian){
                    return response($data_pemohon);
                }else{
                    echo "error";           
                }
            }else{
                return response(1); 
            }
        }

person Muhammad Haryadi Futra    schedule 18.08.2018    source источник
comment
Вы можете проверить эту ссылку-› stackoverflow.com/questions/ 27095090/   -  person Payal Pandav    schedule 18.08.2018
comment
Что вы получаете в результате, пожалуйста, укажите это тоже.   -  person Hidayat Ullah    schedule 18.08.2018
comment
Я пытаюсь проверить, не существует ли запись, тогда я сделаю вставку просто совет, если вы делаете это с помощью кода, вам приходилось иметь дело с параллелизмом. Ваш $data_antrian может иметь дубликаты в качестве кода, выполняемого одновременно, вы можете использовать noper в качестве первичного ключа, чтобы гарантировать, что будет создан только один. Кроме того, мне любопытно с $data_pemohon, так как ->get() вернет пустую коллекцию вместо нуля, если она не дала результата cmiiw.   -  person Bagus Tesa    schedule 18.08.2018
comment
если запись существует? вы хотите обновить его?   -  person Teoman Tıngır    schedule 18.08.2018


Ответы (1)


Не уверен, почему вы используете фасад БД вместо Eloquent:

$data_antrian = App\Antrian_sp::where('noper', $noper)->firstOrFail();

Если у вас нет модели для таблицы antrian_sp или вы просто предпочитаете фасад БД, это должно сделать это:

if ($data_antrian)
person sskoko    schedule 18.08.2018