Laravel创建自定义方法来获取表单数据

时间:2017-08-29 15:09:17

标签: php laravel-5

如何制作自定义方法来获取表单数据?我希望这个方法与带有参数request和id的Laravel更新方法相同。我试试这个,但得到错误。

在控制器中

public function updatePassword(Request $request, int $id) {
   dd($request->all());
}

路线

Route::post('staffs/{id}/upassword', 'Admin\StaffController@updatePassword')->name('admin.staffs.upassword');

在刀片文件中

<form method="post" accept-charset="utf-8" action="{{ action('Admin\StaffController@updatePassword', ['id' => $staff_id]) }}">
    <div class="row">
        <div class="col-md-3">
            <div class="form-group">
                <label class="control-label" for="password">New Password</label>
                <input class="form-control" name="password" type="password">
            </div>
       </div>
   </div>
   <div class="row">
       <div class="col-md-3">
           <div class="form-group">
               <label class="control-label" for="password_confirmation">Confirm New Password</label>
               <input class="form-control" name="password_confirmation" type="password">
           </div>
       </div>
  </div>

  <input class="btn btn-primary" type="submit">
</form>

我正在使用Laravel 5.4。

2 个答案:

答案 0 :(得分:0)

这里有一些要修复的东西:

  • 首先在标记中,您可以将操作设置为: action="route('admin.staffs.upassword', $staff_id)"因为它是 更容易写,因为你已经给路线一个名字,所以为什么 不使用它;)
  • 在表单结束标记之前添加{{csrf_field() }} </form>

答案 1 :(得分:0)

你得到的是什么错误?错误可能是因为您在表单声明后没有使用{{csrf_field()}},所以需要它以便laravel可以验证请求。如果你想从表格中获取数据,你可以使用:

$request->get('inputname');