Laravel PHP 4:'Put'方法生成'MethodNotAllowedHttpException'

时间:2014-10-23 14:40:02

标签: php laravel-4

我正在尝试修改用于编辑和更新数据的表单。但是,当我尝试提交“编辑”表单时,我不断收到“MethodNotAllowedHttpException”。我不确定这是因为我错误地使用'PUT'方法还是我的'EditAlbumsController.php'文件没有正确定义。

修改-album.blade.php:

{{ Form::model($album, array('method' => 'PUT', 'route' => array('edit_album', $album->album_id))) }}
/* Form code here */
{{ Form::close() }}

routes.php文件:

Route::get('gallery/album/{id}/edit', array('as'=>'edit_album', 'uses'=>'EditAlbumsController@update'));

EditAlbumsController.php:

class EditAlbumsController extends AlbumsController {

public function __construct() 
{
    parent::__construct();
}

public function update($id)
{
    $input = \Input::except('_method');

    $validation = new Validators\Album($input);

    if ($validation->passes())
    {
    $album = Album::find($id);
    $album->album_name = $input['album_name'];
    /* Additional database fields go here */
    $album->touch();
    return $album->save();

    return \Redirect::route('gallery.album.show', array('id' => $id));
    }
    else
    {
        return \Redirect::route('gallery.album.edit', array('id' => $id))
        ->withInput()
        ->withErrors($validation->errors)
        ->with('message', \Lang::get('gallery::gallery.errors'));
    }
}    

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

您需要定义PUT路线(您错误地使用GET)

Route::put('gallery/album/{id}/edit', array('as'=>'edit_album', 'uses'=>'EditAlbumsController@update'));