Laravel 4 Form Post

时间:2013-12-02 23:45:37

标签: php laravel laravel-4

我目前正在学习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');

2 个答案:

答案 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; 
}