Laravel-是否可以使用Illuminate \ Foundation \ http \ formrequest验证获得通配符的请求;
我有一条通配符天的路线。
这一天通配符是这样的弦:20220507(yyymmdd)。
验证后,我希望做出适当的响应。在发送响应之前,我想验证字符串长度和格式。
我的问题是,是否可以用 Illuminate \ Foundation \ http \ formrequest ou Illuminate \ http \ request 来验证字符串。 make:request ?还是他们只有accepet帖子请求?
代码:
php artisan make:request CalendarDayRequest
示例获取Web.php
Route::get('/calendar/{day}' , 'App\Http\Controllers\HomeController@calendar')->name('calendar');
示例控制器
use App\Http\Requests\CalendarDayRequest;
public function calendar ( CalendarDayRequest $request ) {
// Code
}
或示例控制器
use Illuminate\Http\Request;
public function calendar ( Request $request ) {
$validated = $request->validate([
'day' => 'required',
]);
}
2中的路由2我遇到了错误:无限重定向环,将其重定多次。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
首先,您无法验证表单请求中的路由
参数
示例:
如果您仍然要使用
validate()
函数或表单请求表单请求方式 - 覆盖
all()
方法如果什么都没有起作用,请尝试遵循代码
laravel 5如何验证路由参数?,
但是我建议您作为请求参数发送它如果要使用
validate()
函数。Firstly, you can not validate route parameters inside Form Request
But, you can use regex for validating your route
Example:
If You still want to use
validate()
function or Form RequestForm Request Way - Override
all()
methodIf Nothing Works, Try Following code
Laravel 5 how to validate route parameters?
But I would suggest you to send it as request parameter if you want to use
validate()
function.在示例1中:
您应该在calendardayrequest中覆盖此方法:
如果客户端期望JSON,Laravel将返回JSON字段而不是重定向。您可以通过更改此方法或在app \ extesbions \ handler中自定义渲染方法来完全更改此行为。
在示例2中:
因此,您可以使用验证器的消息通知客户端。
In Example 1:
You should overwrite this method in CalendarDayRequest:
If client expects json, laravel will return a json field instead of redirection. You can completely change this behavior by changing this method or customizing render() method in App\Exceptions\Handler.
In Example 2:
So you can use messages of validator for informing client.