首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >资源定义方法Laravel-4上的MethodNotAllowedHttpException

资源定义方法Laravel-4上的MethodNotAllowedHttpException
EN

Stack Overflow用户
提问于 2014-06-27 19:34:29
回答 2查看 1.7K关注 0票数 0

我创建了一个非常简单的表单,这样我就可以使用submit按钮而不是链接打开编辑用户页面。使用链接可以很好地工作,但是表单按钮会失败,并产生一个MethodNotAllowedHttpException,即使方法(“编辑”)是在UsersController资源中定义的,并且在其他方面运行良好。

路由:

代码语言:javascript
复制
Route::resource('users','UsersController');

UsersController:

代码语言:javascript
复制
public function edit($id)
    {
        $user = $this->user->find($id);
        return View::make('users.edit')->with('user',$user);
    }

show.blade.php:

代码语言:javascript
复制
<!-- This works fine: -->
{{ link_to_route('users.edit', ("Edit: " .$user->first_name." ".$user->last_name), $user->id) }}

<!-- This doesn't work, and yields the Method Not Allowed exception: -->
{{ Form::open(array('route' => array('users.edit',$user->id))) }}
{{ Form::submit('Edit User', array('class'=>'button')) }}
{{ Form::close() }}

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-28 11:53:13

当您执行Form::open()时,它默认使用post请求方法。但是当您创建一个Route::resource()时,edit方法接受一个get请求。

要使它在表单中工作,您需要使用一个附加参数打开它,如下所示:

代码语言:javascript
复制
{{ Form::open(array('route' => array('users.edit',$user->id),
   'method' => 'get')) }}
票数 1
EN

Stack Overflow用户

发布于 2014-06-27 19:39:19

您需要指向更新路由,而不是编辑。

代码语言:javascript
复制
{{ Form::open(array('route' => array('users.update', $user->id))) }}

编辑路由用于显示视图,而更新则用于put/修补程序请求。

有关使用RESTful路由的更多信息,我建议查看http://laravel.com/docs/controllers#resource-controllers

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24459569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档