Laravel 4 Undefined Method照亮Http请求请求:: post()

时间:2015-04-08 14:08:43

标签: php laravel laravel-4

我有一个简单的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 :: [方法]无法解决问题的帖子。

1 个答案:

答案 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')