اذهب إلى المحتوى
  • 0

ما سبب خطأ "SQLSTATE[HY000]: General error: 1364 Field 'name' doesn't have a default value في لارافل

Abdelrahman Mostafa10

السؤال

لدي الكود التالي في user model:

public function validationRules(){
        return [
                'name'     =>  'required',
                'email'    =>  'required|email|unique:users,email',
                'password' =>  'required|min:6',
        ];
    }

وذلك هو Patient model:

public function validationRules(){
        return [
                'first_name'      =>  'required', 
                'last_name'       =>  'required',
                'address'         =>  'required',
                'date_of_birth'   =>  'required',
                'phone_no'        =>  'required',
                'image'           =>  'required',
                'medical_history' =>  'required',
                'sex'             =>  'required',
                'blood_group'     =>  'required',
        ];

        if($request->hasFile('image')) {

            $fileNameWithExt    = $request->file('image')->getClientOriginalName();
            $fileName           = pathinfo($fileNameWithExt, PATHINFO_FILENAME);
            $fileSize           = $request->file('image')->getSize();
            $fileExt            = $request->file('image')->getClientOriginalExtension();
            $fileNameNew        = uniqid('', true) . time() . '.' . $fileExt;

        }
    }

وذلك هو الكود في PatientController:


public function edit(Patient $patient , User $user)
    {
        return view('Dashboard.default.patients.edit', compact('patient' , 'user' ));
    }
    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Patient  $patient
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, User $user ,Patient $patient)
    {
       // User Validation
       $userValidData = $request->validate($user->validationRules());

       // Patient Validation
       $patientValidData = $request->validate($patient->validationRules());

        // save user data
            $userValidData['role_id']   = '10';
            $user->save();
    
            $patientValidData['user_id'] = $user->id;
            $patient->save();

            $success = 'the patient has been updated successfully';
            return redirect('/patients')->with('success', $success);
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

يظهر هذا الخطأ لان الاسم ليس لديه قيمة افتراضية فعند عدم اخال اسم لا يوجد شئ وانت في user model مفعل الاسم required يمكنك تغيرها الي sometimes كالتالي   

public function validationRules(){
        return [
                'name'     =>  'sometimes',
                'email'    =>  'required|email|unique:users,email',
                'password' =>  'required|min:6',
        ];
    }

او وضع قيمة افتراضية لها 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...