2015-04-08 5 views
2

У меня есть простая форма HTML и звонит контроллер в файле маршруты, но после представления я получаю следующее сообщение об ошибке:Laravel 4 Неопределенного Метод Осветите Http Request Request :: поста()

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', '[email protected]'); 

В качестве теста управления, нужно настроить только прямой PHP (без Laravel или любой PHP рамки) тест сайт и скопировал форму и изменил действие формы, чтобы просто указать на другой php-скрипт, где я мог бы повторить метод запроса и данные сообщения и работал как ожидалось.

Я в тупике. Может ли это быть ошибкой? Я видел много других сообщений о проблемах с Symfony's Request :: [methods], которые не работают.

+0

Вы не указали свой 'PalletController', но я думаю, вам просто нужно использовать' Input :: post() 'вместо' Request :: post() ' –

+0

Я даже не добираюсь до контроллера. и я не использую Request :: post(), который вызывается структурой Kaloyan. Проверьте сообщение об ошибке в верхней части сообщения. – Malchesador

ответ

2

Я предполагаю, что вы вызвали метод post() внутри вашего контроллера как Request :: post() или Input :: post(). Вместо этого вы должны использовать Input :: get(). Ключевое слово получает в входе фасада не привязано к глобальному массиву $ _GET. Поэтому, отправляете ли вы данные с использованием метода GET или POST, вы должны использовать Input :: get ('ключ') для их получения. Однако, чтобы убедиться, что данные, которые вы выбираете, отправляются через метод POST, вы можете использовать Request::method() == 'POST' или Request::isMethod('post'), окружающие ваш код.

+0

Да, это было так. Я просто пытался var_dump (Input :: post()) и должен был использовать Input :: get() вместо этого. Мне очень жаль, что сообщение об ошибке Laravel не указало мне на мой собственный код! : P Спасибо clife. – Malchesador

+0

То же самое для меня, я пытался $ data = \ Input :: post ('data'), но правильный: \ Input :: get ('data') –