2016-01-22 4 views
3

Я получаю эту ошибку в момент, когда я попал в адресную строку,Laravel 4 показывает MethodNotAllowedHttpException

я выборки данных из базы данных и отправить мнение, что взгляд работает прекрасно, но когда я попал в адресную строку вкладка он показывает Symfony \Component\HttpKernel\Exception\MethodNotAllowedHttpException любой помощь будет большой для меня ...

В моем контроллере:

public function getpiece() 
{ 
    $reportno = $_POST['reportno']; 
    $data  = DB::table('reportno')->where('reportno','=',$reportno)->get(); 


    if(empty($data)) { 
     return \Redirect::to('dashboard/client/piece') 
      ->with('status','error') 
      ->with('message','Data Not Available'); 
    } else {  
     return \View::make('dashboard.client.piecewisereport') 
      ->with('data',$data); 
    } 
} 
+0

как вы называете это действие, и метод HTTP, например GET, POST, DELETE или другой? – Naumov

+0

Возможно, ваш метод POST и GET на вашем маршруте не разделен. – MasterSith

+0

используя post Route :: post ('getpiece', 'Controllers \ Domain \ Client \ ClientController @ getpiece'); – Matheshwaran

ответ

0

Я заметил, что ваш метод управления называется getpost, но ваш ас переключение переменной $_POST.

Я не могу сказать наверняка, не глядя на ваш файл маршрутов, но если ваш маршрут использует Route::get('routename'), то он использует неправильный метод HTTP. Если это так, попробуйте изменить его на Route::post('routename').

+0

Я использую только почтовый метод – Matheshwaran

+0

getpiece - это имя функции, которую вы можете взять() только – Matheshwaran

+0

Хорошо, в этом случае похоже, что ответ Ciccio - это то, что вы ищете. –

1

Это не работает, потому что, когда вы нажмете enter в адресной строке, он пытается использовать GET вместо POST, но находит только POST маршрут. (Route :: пост).

Чтобы решить эту проблему, либо сделать:

Route::any('getpiece','Controllers\Domain\Client\[email protected]'); 

И тогда я советовал бы использовать что-то вроде

if (Request::isMethod('post')) 
{ 
    // 
} 

и

if (Request::isMethod('get')) 
{ 
    // 
} 

, чтобы обернуть ваш код. Более подробно об этом можно найти в Request Information docs

И альтернативный метод для решения контроллера непосредственно из путей, как можно найти здесь: Laravel 4.2 Implicit Controllers

Примечание: эти ссылки на документацию ссылки на Laravel 4.2.

+1

мм, этот код также получает ту же ошибку – Matheshwaran

+0

маршрут был утерян, может быть, проблема в сеансе маршрута? – Matheshwaran

+0

Извините, обновил ответ. Я забыл добавить '@ getpiece' в маршрут –

0

Выполнение php artisan routes в терминале от корня вашего проекта позволяет проверить, какие ваши зарегистрированные маршруты.

PS: FYI, в случае Laravel 5 было бы php artisan route:list

Смежные вопросы