我有一个简单的html表单,我在路由文件中调用一个控制器,但在提交时我收到以下错误:
Symfony\Component\Debug\Exception\FatalErrorException thrown with message "Call to undefined method Illuminate\Http\Request::post()"
Stacktrace:
#1 Symfony\Component\Debug\Exception\FatalErrorException in /vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:205
#0 Illuminate\Exception\Handler:handleShutdown in <#unknown>:0
在这个特定的网站上,我有很多表格,甚至更多的路线,除了这个以外都有工作。我一次又一次地看了一些错字或可能导致它失败的东西,但什么都找不到。
我的表格是:
<form class="form-horizontal" action="/warehouse/add_pallet" method="post" accept-charset="utf-8" role="form">
<div class="row">
<div class="col-xs-12">
<div class="pm-well">
<h2>Scan Add Pallet</h2>
<div class="form-group">
<label class="col-xs-12 col-sm-2" for="pallet_location">Location: </label>
<div class="col-xs-12 col-sm-8">
<input type="text" class="form-control" name="pallet_location" id="pallet_location">
</div>
</div>
<div class="form-group">
<label class="col-xs-12 col-sm-2" for="sku">sku: </label>
<div class="col-xs-12 col-sm-8">
<input type="text" class="form-control" name="sku" id="sku">
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<input type="submit" class="pm-btn pm-btn-confirmation medium-btn" value="Add Pallet">
</div>
</div>
</form>
在我的路线文件中,我有:
Route::post('warehouse/add_pallet', 'PalletController@insert');
作为一个控制测试,我只设置了一个直接的PHP(没有Laravel或任何PHP框架)测试站点并复制了表单并更改了表单操作以简单地指向另一个php脚本,我可以在其中回显请求方法和发布数据并按预期工作。
我在这一点上很难过。这可能是个错误吗?我看过很多关于Symfony的Request :: [方法]无法解决问题的帖子。
答案 0 :(得分:2)
我猜你已经在你的控制器中调用了一个方法post()作为Request :: post()或Input :: post()。您应该使用Input :: get()代替。 Facade Input中的关键字 get 未绑定到$ _GET全局数组。因此,无论您是使用GET还是POST方法提交数据,都应使用Input :: get(&#39; key &#39;)来检索它们。
但是,为了确保通过POST方法提交您提取的数据,您可以使用代码周围的Request::method() == 'POST'
或Request::isMethod('post')
。