检查Laravel 5.5中是否存在记录

21 浏览
0 Comments

检查Laravel 5.5中是否存在记录

已关闭。该问题需要详细说明或澄清。当前无法接受答案。


想要改进这个问题?通过编辑此帖子添加详细信息并澄清问题。

改善这个问题

我有一个动态输入表单,我想检查记录是否存在,如果不存在,则无法插入数据

我的控制器

$user = Master::where('id_a','=',$request->get('id_a'))->where('id_b','=',$request->get('id_b'))->get();
   if($user->isEmpty()){
      // insert
   }else{
     //message "cannot input"
   }

如果插入一个数据,成功...但如果在我的控制器中插入数组,则不会检查...为什么在输入数组数据中总是插入?

admin 更改状态以发布 2023年5月21日
0
0 Comments

你可以使用exists()

if(Master::where('id_a','=',$request->get('id_a'))->where('id_b','=',$request->get('id_b'))->exists()) {
do something
}

而且我建议你减少行内元素的使用,改为像这样:

$id_a = $request->get('id_a');
$id_b = $request->get('id_b');
if(Master::where('id_a','=', $id_a)->where('id_b','=',$id_b)->exists()) {
do something
}

0
0 Comments

这是一个伪代码,仅用于检查id_b

   $data = [1,2,3,4];
   $data_a = [1,2,3,4];
    $masters = Master::whereIn('id_b', $data)->whereIn('id_a', $data_a)->get();
    foreach($data as $key => $value) {
        $isExisted = false;
        foreach ($masters as $master) {
            if ($master->id_b == $value[$key] && $master->id_a == $data_a[$key])
            {
                $isExisted = true;
                break;
            }
        }
        if ( ! $isExisted) {
            $master = new Banner();
            $master->value = your_data;
            $master->save();
        }
    }

0