laravel 5表单请求验证问题

时间:2016-02-10 14:54:26

标签: laravel-5

在我的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类中,我没有根据需要对该字段进行decal。我究竟做错了什么?谢谢!

1 个答案:

答案 0 :(得分:0)

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