在创建之前如何检查我的数据是不是已经存在于我的数据库中?

Posted

技术标签:

【中文标题】在创建之前如何检查我的数据是不是已经存在于我的数据库中?【英文标题】:How to check if my data already exists in my database before creating?在创建之前如何检查我的数据是否已经存在于我的数据库中? 【发布时间】:2020-01-01 22:32:27 【问题描述】:

我正在为护士开发一个 Laravel 6 应用程序,我需要创建一个病人。我的问题是许多患者可以有相同的地址和姓氏。我尝试了不同的方法来检查患者是否已经存在,但结果是我不能让两个患者拥有相同的数据。我想检查数据库中关于新患者的所有信息是否都等于一个。

我尝试了以下方法,但没有成功。

if ($patientotal = Patient::where([
    ['nom', $data],
    ['prenom', $data],
    ['telephone', $data],
    ['adresse', $data],
    ['codePostale', $data],
    ['ville', $data],
    ['infoSupplementaire', $data]
])->doesntExist()) 

控制器

public function store(Request $request)

    $data = Validator::make($request->all(), [
        'nom' => 'required',
        'prenom' => 'required',
        'telephone' => 'required',
        'adresse' => 'required',
        'codePostale' => 'required',
        'ville' => 'required',
        'infoSupplementaire' => 'required',
    ]);

    $patient = new Patient();
    $patient->nom = $request->nom;
    $patient->prenom = $request->prenom;
    $patient->telephone = $request->telephone;
    $patient->adresse = $request->adresse;
    $patient->codePostale = $request->codePostale;
    $patient->ville = $request->ville;
    $patient->infoSupplementaire = $request->info;

    if ($patient->save()) 
        if ($request->has('debut', 'fin')) 
            $dataOrdo = Validator::make($request->all(), [
                'dateOrdonnance' => 'required',
            ]);
            $datedebut = Carbon::parse($request->debut);
            $datefin = Carbon::parse($request->fin);

            $ordonnance = new Ordonnance();
            $ordonnance->debut = $datedebut;
            $ordonnance->fin = $datefin;
            $ordonnance->patient_id = $patient->id;
            if ($ordonnance->save()) 
                session()->put('id_ordonnance', $ordonnance->id);

                return ['patient' => $patient, 'ordonnance' => $ordonnance];
            
        
    ;

    return response()->json([$request->all()]);

【问题讨论】:

你也可以试试insertOrIgnore 我尝试过 insertOrIgnore , firstAndNew, Exist, doesntExist 也许我做错了 【参考方案1】:

我做到了,一个好人给了我帮助,效果很好。非常感谢一年中的第一天的帮助

 public function store(Request $request)




        $data=  Validator::make($request->all(), [
            'nom'=>'required',
            'prenom'=>'required',
            'telephone'=>'required',
            'adresse'=>'required',
            'codePostale'=>'required',
            'ville'=>'required',
            'infoSupplementaire'=>'required',
        ]);
        $patientExists = Patient::where('nom', '=' ,$request->nom)
                     ->where('prenom', '=', $request->prenom)
                     ->where('telephone', '=', $request->telephone)
                     ->where('adresse', '=', $request->adresse)
                     ->where('codePostale', '=', $request->codePostale)
                     ->where('ville', '=', $request->ville)
                     ->where('infoSupplementaire', '=', $request->info)   
                     ->count();

                     if ($patientExists > 0) 

                         else 

                            $patient = new Patient();
                            $patient->nom = $request->nom;
                            $patient->prenom = $request->prenom;
                            $patient->telephone = $request->telephone;
                            $patient->adresse = $request->adresse;
                            $patient->codePostale = $request->codePostale;
                            $patient->ville = $request->ville;
                            $patient->infoSupplementaire = $request->info;


                        if($patient->save())


                            if($request->has('debut','fin'))


                             $dataOrdo=Validator::make($request->all(),[

                                 'dateOrdonnance'=>'required',

                             ]);
                                $datedebut = Carbon::parse($request->debut);
                                $datefin = Carbon::parse($request->fin);

                                $ordonnance=new Ordonnance();

                                $ordonnance->debut=$datedebut;
                                $ordonnance->fin=$datefin;
                                $ordonnance->patient_id=$patient->id;

                                if($ordonnance->save())
                                 session()->put('id_ordonnance',$ordonnance->id);
                                 return['patient'=>$patient,'ordonnance'=>$ordonnance];

                                

                            
                         ;



                             return response()->json([$request->all()]);
                        


【讨论】:

以上是关于在创建之前如何检查我的数据是不是已经存在于我的数据库中?的主要内容,如果未能解决你的问题,请参考以下文章

C#。当我尝试检查用户是不是存在于我的 SQL 数据库中时,我的 Windows 窗体应用程序崩溃

检查图像是不是存在于我的本地资源中

如何在显示列之前检查 SELECT 语句是不是存在

如何检查我的 ODBC 数据源是不是存在于 PHP 中?

使用 Python 检查标签是不是已存在于 Adwords 帐户中?

如何在创建存储过程之前检查它是不是存在