2017-08-29 64 views
0

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

在控制器

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

在路线

Route::post('staffs/{id}/upassword', 'Admin\[email protected]')->name('admin.staffs.upassword'); 

在刀片文件

<form method="post" accept-charset="utf-8" action="{{ action('Admin\[email protected]', ['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。

+0

你得到的错误是什么? – Sletheren

+0

@NorrisOduro是不是我的答案已经?大声笑 – Sletheren

+0

@Sletheren哈哈对不起...我没有看到 –

回答

0

这里有一些东西来解决:

  • 首先在标签中可以设置动作: action="route('admin.staffs.upassword', $staff_id)",因为它是 更容易编写和因为你已经给了路线的名称,那么为什么 不使用它;)
  • 二加{{csrf_field() }}窗体关闭标签 </form>
+0

我只是添加'{{csrf_field()}}'它工作。非常感谢 –

+0

我不能投票。这里仍然是新手。哈哈 –

0

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

$request->get('inputname'); 
+0

谢谢。它在我把'{{csrf_field()}}'后运作。 –