【问题标题】:Getting Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException获取 Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException
【发布时间】:2014-11-20 07:51:47
【问题描述】:

我正在发送一个处理输入数据和更新记录的 PUT 请求,但我得到了上述响应。然而,问题似乎不是路线,因为如果我在$user = User::whereId($id)->firstOrFail(); 行之后执行dd($user),我会正确返回对象。

然而,当需要验证它时,它会抛出这个错误。

# routes
Route::resource('users', 'UsersController', ['only' => ['index', 'show', 'update']]);

# api call
PUT /users/2

# controller
public function update($id)
{

    $user = User::whereId($id)->firstOrFail();

    $input = Input::all();

    $this->userForm->validate($input);

    $user->fill($input)->save();

    return $user->toJson();

}

# userForm class

<?php namespace Olp\Forms;

use Laracasts\Validation\FormValidator;

class UserForm extends FormValidator {

    protected $rules = [
        'email'         => 'required|email|unique:users',
        'password'      => 'required',
        'password_confirmation' => 'required|same:password',
        'firstname'     => 'required',
        'lastname'      => 'required',
        'schoolname'    => 'required',
        'address1'      => 'required',
        'address2'      => 'required',
        'postcode'      => 'required',
        'city'          => 'required'
    ];
}

在我的用户控制器中:

use Olp\Forms\UserForm;

class UsersController extends \BaseController {

    function __construct(UserForm $userForm)
    {
        $this->userForm = $userForm;
    }

【问题讨论】:

  • 顺便说一句,你只需要:$user = User::findOrFail($id);
  • 那么这里发生了什么:$this-&gt;userForm-&gt;validate($input);?您可以为此包含模型函数的代码吗?
  • @hebron 感谢您的回复 - 我已经为该部分添加了相关代码。

标签: symfony laravel-4


【解决方案1】:

我不是 Laravel 人,但快速查看他们的文档表明 Resource Controllers 除了支持其他 HTTP 动词外,还支持 PUT。

我无法弄清楚如何将 HTTP 动词支持添加到任意操作,但 this 表示您可以命名控制器操作,并以它响应的动词为前缀

public function putUpdate($id)

【讨论】:

  • 如果他使用Route::controller 是的,但他使用的是Route:resource,它会自动定义updatePUT 路由。 :)
猜你喜欢
  • 2020-06-22
  • 2019-07-01
  • 2018-09-06
  • 2019-01-06
  • 2018-03-25
  • 2018-10-31
  • 2019-07-08
  • 2015-01-07
  • 2021-06-10
相关资源
最近更新 更多