如何检查记录是否存在于laravel?

How to check if the record is exist in laravel?

我有一个问题,我不知道我的代码有什么问题,我试图找出我要插入数据库的数据是否存在,如果不存在我想插入它。但问题是我无法插入数据,即使它不存在于数据库中。这是我的代码:

$data_pemohon       = DB::table('data_pemohon')->select('*')->where('noper', $noper)->get();
if(is_null($data_pemohon)){
    $tambah_data_pemohon = DB::table('data_pemohon')->insert($data);
}else{
    echo "the data is exist!";      
}

请帮帮我。谢谢。

$data_pemohon = DB::table('data_pemohon')->where('noper', $noper)->exists();
if(!$data_pemohon){
    $tambah_data_pemohon = DB::table('data_pemohon')->insert($data);
}else{
    echo "the data is exist!";      
}

->get()方法return集合(即使是空的),所以要改成->first() (如果未找到 => return null)或者您可以使用 if(count($data_pemohon) === 0) 检查您的情况然后插入

这可能与您的问题无关,但我建议您使用'unique' validation rule。 一个非常简单的用法是这样的:

$validator = Validator::make($data, [
    'noper' => 'unique:data_pemohon:noper',
]);
if ($validator->fails()) {
    // ... Handle the error
}
// ...Insert your data

我建议阅读文档以更好地了解 Laravel 的验证过程。