<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 第7節 Laravel-通過表單實現修改 # 7.1 給HTML添加鏈接 7.2 創建修改的表單頁面 7.3 使用模型實現修改操作 ## 7.1 給HTML添加鏈接 ## 在 `\resources\views\student\index.blade.php` 中給修改添加 href 屬性。 <a href="{{ url('student/update') }}">修改</a> 添加頁面和修改其實很像,我們可以復制 `resources\views\student\create.blade.php`,并命名為 `resources\views\student\update.blade.php` 將“新增學生”修改為“修改學生”。 ## 7.2 創建修改的表單頁面 ## 創建控制器的update方法。 ~~~ /** * 用于修改學生信息 * * @param * @return bool * @author webjust [604854119@qq.com] */ public function update() { return view('student/update'); } ~~~ 新增加了一條路由: Route::get('/', ['uses' => 'StudentController@index']); // 新增表單路由 Route::any('student/create', ['uses' => 'StudentController@create']); Route::any('student/update', ['uses' => 'StudentController@update']); 此時,刷新首頁,點擊修改,應該可以打開修改的表單頁面了吧! 但是,我們要修改,首先需要傳遞一個被修改的用戶的 主鍵id 作為參數吧! **定義一個但參數的路由** Route::any('student/update/{id}', ['uses' => 'StudentController@update']); 此時,我們在修改url()方法,傳遞第2個參數,使用數組的方式,傳遞id的值: <a href="{{ url('student/update', ['id' => $student->id]) }}">修改</a> 在控制器中的update()修改方法中,要接收 id 值;提交時要獲取表單的數據吧!所以加入Request依賴組件把! 這個組件很機制的就可以獲取傳遞過來的id值。 如下: public function update(Request $request, $id) { $student = Student::find($id); var_dump($student); return view('student/update'); } 我們使用傳遞過來的id主鍵,作為參數,使用模型的 find($id) 方法,即可查詢數據表中對應的那條數據了!現在我們使用 var_dump 打印,查看結果! ![](https://box.kancloud.cn/65008a60c22a7a8530639610b14911c9_1046x728.png) 修改學生的信息,把查詢出來的數據 `$student_info`,傳遞給視圖。 public function update(Request $request, $id) { $student_info = Student::find($id); return view('student/update', ['student_info' => $student_info]); } 此時,我們繼續做一些操作,把數據填充到視圖中。 ~~~ <form class="form-horizontal" method="post" action=""> {{ csrf_field() }} <div class="form-group"> <label for="name" class="col-sm-2 control-label">姓名</label> <div class="col-sm-5"> <input type="text" value="{{ old('Student')['name'] ? old('Student')['name'] : $student_info->name }}" name="Student[name]" class="form-control" id="name" placeholder="請輸入學生姓名"> </div> <div class="col-sm-5"> <p class="form-control-static text-danger">{{ $errors->first('Student.name') }}</p> </div> </div> <div class="form-group"> <label for="age" class="col-sm-2 control-label">年齡</label> <div class="col-sm-5"> <input type="text" value="{{ old('Student')['age'] ? old('Student')['age'] : $student_info->age }}" name="Student[age]" class="form-control" id="age" placeholder="請輸入學生年齡"> </div> <div class="col-sm-5"> <p class="form-control-static text-danger">{{ $errors->first('Student.age') }}</p> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label">性別</label> <div class="col-sm-5"> @foreach($student->sex() as $ind => $sex) <label class="radio-inline"> <input type="radio" name="Student[sex]" {{ ((isset(old('Student')['sex']) && old('Student')['sex'] == $ind) || $student_info->sex == $ind) ? 'checked' : '' }} value="{{ $ind }}"> {{ $sex }} </label> @endforeach </div> <div class="col-sm-5"> <p class="form-control-static text-danger">{{ $errors->first('Student.sex') }}</p> </div> </div> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> <button type="submit" class="btn btn-primary">提交</button> </div> </div> </form> ~~~ 我們采用的是POST提交,提交到當前頁 update() 方法中,所以action的值留空。 ## 7.3 使用模型實現修改操作 ## update() 的方法,和增加的方法差不多,所以可以使用增加的驗證方式。 public function update(Request $request, $id) { $student_info = Student::find($id); // 修改操作 if($request->isMethod('POST')) { // 校驗 $this->validate($request, [ 'Student.name' => 'required|min:2|max:20', 'Student.age' => 'required|integer', 'Student.sex' => 'required|integer', ],[ 'required' => ':attribute 為必填項', 'min' => ':attribute 長度不能小于2個字符', 'max' => ':attribute 長度不能大于20個字符', 'integer' => ':attribute 必須為數字', ],[ 'Student.name' => '用戶名', 'Student.age' => '年齡', 'Student.sex' => '性別', ]); $data = $request->input('Student'); $student_info->name = $data['name']; $student_info->age = $data['age']; $student_info->sex = $data['sex']; $student_info->updated_time = time(); // 模型的修改方法 $ret = $student_info->save(); if($ret) { return redirect('/')->with('success', '修改成功!')->withInput(); } else{ return redirect('student/create')->with('error', '修改失敗!')->withInput(); } } return view('student/update', ['student_info' => $student_info]); } 到此,我們的修改功能已經成功了。 ![](https://box.kancloud.cn/b8caf8714964adc01bdc82393f441b9e_1030x635.png) 如圖,左邊的hover效果,我們可以繼續優化! 把 `\resources\views\shared\siderbar.blade.php` 文件修改下: <div class="col-md-3"> <div class="list-group"> <a href="{{ url('/') }}" class="list-group-item {{ Request::path() != 'student/create' ? 'active' : '' }}">學生列表</a> <a href="{{ url('student/create') }}" class="list-group-item {{ Request::path() == 'student/create' ? 'active' : '' }}">新增學生</a> </div> </div> 主要就是把條件修改了 ` Request::path() != '/' ? 'active' : ''` 修改為 ` Request::path() != 'student/create' ? 'active' : ''`
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看