【问题标题】:Laravel create custom method to get form dataLaravel 创建自定义方法来获取表单数据
【发布时间】:2018-02-07 02:47:38
【问题描述】:

如何自定义获取表单数据的方法?我希望此方法与带有参数请求和 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。

【问题讨论】:

  • 你得到的错误是什么?
  • @NorrisOduro 这不是我的答案吗?大声笑
  • @Sletheren 哈哈抱歉...我没看到
  • @NorrisOduro 哈哈,没关系

标签: php laravel-5


【解决方案1】:

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

$request->get('inputname');

【讨论】:

  • 谢谢。在我输入{{ csrf_field() }} 之后它就可以工作了。
【解决方案2】:

这里有一些需要解决的问题:

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

【讨论】:

  • 我只需添加 {{ csrf_field() }} 即可。非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-09
  • 1970-01-01
相关资源
最近更新 更多