MethodNotAllowedHttpException laravel-4

big*_*ata 9 php forms exception laravel laravel-4

表格:

{{ Form::open(array('url' => 'user/create', 'files' => true)) }}
Run Code Online (Sandbox Code Playgroud)

路线:

Route::resource('user', 'UserController');
Run Code Online (Sandbox Code Playgroud)

UserController.php

  class UserController extends BaseController {

    public function index()
    {
        return 'hi11';
        //return View::make('home.index');
    }
    public function create()
    {
        return 'hi22';
        //return View::make('home.index');
    }

}
Run Code Online (Sandbox Code Playgroud)

这段代码给出了
Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException

Bar*_*all 13

我只想在这些方面添加我自己的发现......也许这会拯救别人我刚刚执行过的头脑.

我也实现了Route :: resource机制.我无法弄清楚为什么我的创建工作但我的更新不是.事实证明,您不能完全重用相同的表单代码,执行更新的表单必须使用方法PUT或PATCH.为什么更新不能是POST超出我.

也就是说,更新的开始表单标记必须如下所示:

Form::model($thing, array(
    'method' => 'PUT', 
    'route' => array('things.update', $thing->id)
    )
Run Code Online (Sandbox Code Playgroud)

如果没有指定method => PUT,你会得到这个无用的错误.


Lau*_*nce 2

Laravel 4 资源已命名路由- 只需使用这些:

{{ Form::open(array('route' => 'user.create', 'files' => true)) }}
Run Code Online (Sandbox Code Playgroud)