我目前正在学习Laravel 4。
我正在尝试创建一个非常简单的帖子表单,这是我打开表单的代码:
{{ Form::open(array('post' => 'NewQuoteController@quote')) }}
然后在我的NewQuoteController中我有以下内容:
public function quote() {
$name = Input::post('ent_mileage');
return $name;
}
我一直收到以下错误:
Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException
这可能是非常愚蠢的事......谢谢。
修改
这就是我在routes.php中的内容。
Route::get('/newquote','NewQuoteController@vehicledetails');
Route::post('/newquote/quote', 'NewQuoteController@quote');
答案 0 :(得分:9)
对于POST,您需要将其更改为:
{{ Form::open(array('action' => 'NewQuoteController@quote')) }}
您需要有一条通往控制器操作的路径:
Route::post('quote', 'NewQuoteController@quote');
Form::open()
的默认方法是POST,但如果您需要将其更改为PUT,则必须
{{ Form::open(array('method' => 'PUT', 'action' => 'NewQuoteController@quote')) }}
你也必须为它创建一条新的路线:
Route::put('quote', 'NewQuoteController@quote');
你也必须变色
$name = Input::post('ent_mileage');
到
$name = Input::get('ent_mileage');
您可以将相同的网址用于不同的方法和操作:
Route::get('/newquote','NewQuoteController@vehicledetails');
Route::post('/newquote', 'NewQuoteController@quote');
Route::put('/newquote', 'NewQuoteController@quoteUpdate');
答案 1 :(得分:1)
您是否尝试过将表单更改为
{{Form::open(['method'=>'POST', 'route' =>'NewQuoteController@quote')}}
并在您的控制器中使用其中一种输入法访问表单输入?
public function quote() {
$name = Input::get('ent_mileage');
return $name;
}