Laravel中使用$request->validate()时如何在验证重定向中携带输入?
问题解答
使用$request->validate()语法时,验证失败重定向后默认会自动携带用户输入内容,和你之前手动调用withInput()的效果完全一致——这个过程Laravel已经帮你自动完成,不需要额外配置。
你只需要在视图中通过old()方法获取之前提交的输入值即可,比如:
<!-- 标题输入框回显之前的提交内容 --> <input type="text" name="title" value="{{ old('title') }}">
如果需要指定自定义的重定向路由(而非默认返回上一页),可以通过validate()方法的第三个参数传入路由名称,重定向后依然会自动携带错误消息和输入内容:
$request->validate( ['title' => 'required|unique:posts|max:255'], [], // 可选:自定义错误消息数组 ['title' => 'post.create'] // 指定重定向的路由名称 );
补充说明:Laravel在validate()方法内部,当验证失败时会抛出ValidationException异常,框架的异常处理器会自动捕获该异常,执行重定向并同时调用withErrors()和withInput(),因此你无需手动处理这些逻辑。
内容的提问来源于stack exchange,提问作者Dan
相关产品推荐
相关产品推荐

