繁体   English   中英

我在将数据存储到数据库时遇到问题,任何人都可以帮助我吗?

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

在代码下方制作输入表单。

<!--Form for lecturer-->
          @if (Auth::user() && Auth::user()->role == 'lecturer')
          <form action="/registerLecturerPersonalData" method="POST" enctype="multipart/form-data">
            {{csrf_field()}}
            @if (session('status'))
            <div class="alert alert-success">
                <strong>{{ session('status') }}</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

在model下面,我之前定义了这部分的每个元组,所以可以很容易地处理

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'
    ];
}

controller 下面,包含用于存储数据的规则和异常处理

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");
            }
        }
    }

最后一个是 web.php,该文件定义了适用于您的 web 接口的路由。 这些路由被分配了 web 中间件组,它提供了 session state 和 CSRF 保护等功能

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

您应该调用save()方法,在您制作 object 后,将其存储到数据库中。

像这样: $data->save();

所以你可以拥有:

            $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;

            $data->save();

            return redirect('/home')->with('status',"Insert successfully");

请注意,建议对 class 名称的第一个字符使用大写字母。 而且最好使用 CamelCase 而不是snack_case

喜欢: class Lecturer extends Model

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM