vendredi 5 février 2021

i have a problem with storing data into database, anyone can help me?

below the code to make input form.

<!--Form for lecturer-->
          @if (Auth::user() && Auth::user()->role == 'lecturer')
          <form action="/registerLecturerPersonalData" method="POST" enctype="multipart/form-data">
            
            @if (session('status'))
            <div class="alert alert-success">
                <strong></strong>
            </div>
            @endif
            <div class="personal-form">
              <div class="personal-margin-row row">
                <label class="col-sm-2 personal-margin-label">Lecturer ID</label>
                <div class="col-sm-8">
                  <input type="text" class="form-control" name="lecid" id="lectid">
                </div>
              </div>

                <div class="personal-margin-row row">
                  <label class="col-sm-2 personal-margin-label">Faculty Lecturing</label>
                  <div class="col-sm-8">
                    <select name="facultylecturing" id="facultylecturing" class="col-sm-12 form-control">
                      <option selected disabled>Choose...</option>
                      <option value="FITE">Faculty of Informatics and Electrical Engineering</option>
                      <option value="FTI">Faculty of Industrial Engineering</option>
                      <option value="FTB">Faculty of Biotechnology</option>
                    </select>
                  </div>
                </div>

              <div class="personal-margin-row  row">
                <label class="col-sm-2 personal-margin-label">Major Lecturing</label>
                <div class="col-sm-8">
                  <select name="majorlecturing" id="majorlecturing" class="col-sm-12 form-control">
                    <option selected disabled>Choose...</option>
                    <option value="Informatics Engineering">Informatics Engineering</option>
                    <option value="Information System">Information System</option>
                    <option value="Electrical Engineering">Electrical Engineering</option>
                    <option value="Engineering Management">Engineering Management</option>
                    <option value="Bioprocess Engineering">Bioprocess Engineering</option>
                    <option value="Information System">Information System</option>
                  </select>
                </div>
              </div>

              <div class="personal-margin-row  row">
                <label class="col-sm-2 personal-margin-label">Bachelor Campus</label>
                <div class="col-sm-8">
                  <input type="text" class="form-control" id="bachelorcampus" name="bachelorcampus">
                </div>
              </div>

              <div class="personal-margin-row  row">
                <label class="col-sm-2 personal-margin-label">Master Campus</label>
                <div class="col-sm-8">
                  <input type="text" class="form-control" id="mastercampus" name="mastercampus">
                </div>
              </div>

              <div class="personal-margin-row  row">
                <label class="col-sm-2 personal-margin-label">Phd Campus</label>
                <div class="col-sm-8">
                  <input type="text" class="form-control" id="phdcampus" name="phdcampus">
                </div>
              </div>

              <div class="personal-margin-row  row">
                <label class="col-sm-2 personal-margin-label">Interest Field</label>
                <div class="col-sm-8">
                  <input type="text" class="form-control" id="interest" name="interest">
                </div>
              </div>

              <div class="personal-margin-row  row">
                <label class="col-sm-2 personal-margin-label">Date Start</label>
                <div class="col-sm-8">
                  <input type="date" class="form-control" id="datestart" name="datestart">
                </div>
              </div>

              <div class="personal-margin-row  row">
                <label class="col-sm-2 personal-margin-label">Gender</label>
                <div class="col-sm-8">
                  <select id="gender" name="gender" class="col-sm-4 form-control">
                    <option selected disabled>Choose...</option>
                    <option value="laki-laki">Male</option>
                    <option value="perempuan">Female</option>
                  </select>
                </div>
              </div>

              <div class="personal-margin-row  row">
                <label class="col-sm-2 personal-margin-label">Place of birth</label>
                <div class="col-sm-8">
                  <input type="text" class="form-control" id="placeofbirth" name="placeofbirth">
                </div>
              </div>

              <div class="personal-margin-row  row">
                <label class="col-sm-2 personal-margin-label">Date of Birth</label>
                <div class="col-sm-8">
                  <input type="date" class="form-control" id="dateofbirth" name="dateofbirth">
                </div>
              </div>

              <div class="personal-margin-row  row">
                <label class="col-sm-2 personal-margin-label">Address</label>
                <div class="col-sm-8">
                  <input type="text" class="form-control" id="address" name="address">
                </div>
              </div>


              <div class="personal-margin-row  row">
                <label class="col-sm-2 personal-margin-label">Phone Number</label>
                <div class="col-sm-8">
                  <input type="tel" class="form-control" id="phonenumber" name="phonenumber" pattern="[0-9]{4}-[0-9]{4}-[0-9]{4}" placeholder="ex : 0888-9899-7877">
                </div>
              </div>

              <div class="personal-margin-row  row">
                <label class="col-sm-2 personal-margin-label">Photo</label>
                <div class="col-sm-8">
                  <div class="custom-file">
                    <input type="file" class="form-control custom-file-input" id="customFile" name="photo">
                    <label class="custom-file-label" for="customFile">Choose file</label>
                  </div>
                </div>
              </div>

            </div> 
            <div class="submit-container container">
              <input type="submit" placeholder="submit" class="btn btn-info" name="submit" id="submit" style="width: 100px;">                                         
            </div> 
          </form>
        @endif

below the model, I used to define every tuple in this part, so it can be easily process

class lecturer_model extends Model
{
    protected $table = 'lecturer_data';
    public $timestamps = true;
    protected $fillable = [
        'lecturer_id','id_user_lec','faculty_lecturing','major_lecturing','bachelor_campus','master_campus','phd_major',
        'interest_field','start_date','gender','place_of_birth','date_of_birth','address','phone_number','profile_image'
    ];
}

Below the controller, contains the rule and exceptions handling used to store data

public function storeLecturerPersonalData(Request $request){        
        $rules = [
            'lectid' => 'required|min:2|max:10',
            'facultylec' => 'required|max:255',
            'majorlec' => 'required|max:255',
            'bachelorcamp' => 'required|max:255',
            'mastercamp' =>  'required|max:255',
            'phdcamp' =>  'required|max:255',
            'startdate' => 'required',
            'interest' => 'required|max:255',
            'gender' => 'required|max:255',
            'placeofbirth' => 'required|max:255',
            'dateofbirth' => 'required',
            'phonenumber' => 'required',
            'address' => 'required|min:2|max:255',
            'photo' => 'required|mimes:jpeg,jpg,png,gif,svg'
        ];
        $validator = Validator::make($request->all(),$rules);
        if ($validator->fails()) {
            return redirect('/home')
            ->withInput()
            ->withErrors($validator);
        }
        else{
            $request_input = $request->input();
            $photoName = $request->photo->getClientOriginalName() . '-lecturer-' . time()
            . '.' . $request->photo->extension();
    
            $request->photo->move(public_path('user_image'),$photoName);
            try{
                $data = new lecturer_model;
                $data->lecturer_id = $request_input['lectid'];
                $data->id_user_lec = Auth::user()->id;
                $data->faculty_lecturing = $request_input['facultylec'];
                $data->major_lecturing = $request_input['majorlec'];
                $data->bachelor_campus = $request_input['bachelorcamp'];
                $data->master_campus = $request_input['mastercamp'];
                $data->phd_major = $request_input['phdcamp'];
                $data->interest_field = $request_input['startdate'];
                $data->start_date = $request_input['interest'];
                $data->gender = $request_input['gender'];
                $data->place_of_birth =$request_input['placeofbirth'];
                $data->date_of_birth = $request_input['dateofbirth'];
                $data->address = $request_input['address'];
                $data->phone_number = $request_input['phonenumber'];
                $data->profile_image = $photoName;
                return redirect('/home')->with('status',"Insert successfully");
            }
            catch(Exception $e){
                return redirect('/home')->with('failed',"operation failed");
            }
        }
    }

the last one is the web.php, this file defines routes that are for your web interface. These routes are assigned the web middleware group, which provides features like session state and CSRF protection

Route::post('/registerLecturerPersonalData', 'personalDataController@storeLecturerPersonalData');


via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire