【问题标题】:laravel 5 form request validation issuelaravel 5 表单请求验证问题
【发布时间】:2016-05-20 23:55:33
【问题描述】:

在我的 laravel 5.1 应用程序中,我有一个 Book 模型,其中包含必填的“标题”字段和其他几个非必填字段。为了验证书的创建/更新,我使用这样的表单请求验证:

class StoreBookRequest extends Request
{

    public function authorize()
    {
        return true;
    }

    public function rules()
    {
        return [
            'title' => 'required',
            'year' => 'numeric',
            'pages' => 'numeric',
        ];
    }
} 

然后我在控制器操作上键入提示请求,并且一切正常。现在我需要创建一个新的控制器操作,它只更新一个非必填字段。为此,我创建了另一个这样的请求:

class StoreReviewRequest extends Request
{
    public function authorize()
    {
        return true;
    }

    public function rules()
    {
        return [
            'vote' => 'numeric',
        ];
    }
}

然后我在控制器操作中键入提示请求:

public function updateReview(StoreReviewRequest $request, Book $book)
{
    $input = array_except(Input::all(), '_method');
    $book->update($input);
    Session::flash('message', 'Review updated');

    return redirect('/book');
}

问题是当我使用新的控制器操作时,更新表单没有通过验证,但抱怨缺少“标题”字段,即使我没有按照我的 StoreReviewRequest 类中的要求标记该字段。我究竟做错了什么?谢谢!

【问题讨论】:

  • 您在规则中声明了'title'=>'required'。这就是为什么它显示该字段是必需的。
  • 您确定在提交表单时使用了正确的控制器吗?
  • @JilsonThomas 在 uodateReview 操作中我正在使用 StoreReviewRequest 并且那里不需要“标题”=>。
  • @Needpoule 是的,控制器是正确的。
  • 可以出示您的表格吗?

标签: laravel-5


【解决方案1】:

正如@Needpoule 所建议的,我在表单中使用了错误的操作。

【讨论】:

    猜你喜欢
    • 2015-06-22
    • 2015-10-05
    • 1970-01-01
    • 2016-09-02
    • 2015-12-24
    • 2023-03-14
    • 2016-05-23
    • 2016-03-11
    相关资源
    最近更新 更多