Laravel where 限制路由传递的参数id等
路由 参数 ID 限制 传递 laravel where
2023-09-27 14:27:35 时间
上篇文章讲到路由参数
如何限制这个参数呢
比如aaa如何只能传递int类型的数据
可以使用where
Route::get('task/read/{id}', 'TaskController@read')
->where('id', '[0-9]+');
这样如果再传递非匹配这个正则的数据会直接报错
匹配正则则会正常可以访问
多个参数如何匹配
class TaskController extends Controller
{
public function index()
{
return "index";
}
public function read($id, $name)
{
return 'id' . $id . 'name:' . $name;
}
}
使用数组的方式
Route::get('task/read/{id}/{name}', 'TaskController@read')
->where(['id' => '[0-9]+', 'name', '[a-z]+']);
一个id通常规则都是int【0-9】+这个正则往往能满足很多id的类型
我们不需要每个id都给他进行定义可以通过
app->Providers 中的
RouteServiceProvider.php里面的boot方法定义自定义的针对id的做整数0-9之间不限制个数的限制
public function boot()
{
Route::pattern('id', '[0-9]+');
parent::boot();
}
我们来测试这个路径
Route::get('index/{id}', function ($id) {
return 'Hello Laravel' . $id;
});
全局被限制了。很难受
有没有办法在局部的id不限制
TaskController新增
public function read_by_any_id($id)
{
return 'id' . $id ;
}
web.php新增
Route::get('task/read_by_any_id/{id}', 'TaskController@read_by_any_id')
->where('id', '.*');
相关文章
- 45静态路由算法和动态路由算法
- vue-router4 |name的作用|query传参|parmas传参|动态路由参数|命名视图|别名alias|前置路由守卫|路由过渡效果|滚动行为
- 80.(后端)分配权限接口实现——用路由来接收参数实现添加权限功能
- 39.Vue3:路由传递参数
- 对Flutter路由管理库Fluro的封装
- Vue2.5 旅游项目实例10 城市选择页-路由配置
- Flutter 路由传入中文参数报错无法push问题
- flask路由route 设置和参数 (到时可以看看)
- flask路由末端带斜线和不带斜线的区别
- 解决多个路由绑定同一个组件 获取参数只获取一次的方法
- vue系列:跳转同一个路由如何替换url后的参数
- vue系列:跳转到同一个路由参数不同但是不触发更新的问题
- Linux策略路由详解
- 如何使用 Traefik 反向代理将流量路由到 Docker 容器
- [WCF 4.0新特性] 路由服务[实例篇]
- 【Android 组件化】路由组件 ( 页面跳转参数依赖注入 )
- 【Android 组件化】路由组件 ( 注解处理器参数选项设置 )
- partial.js client-side routing(客户端路由-基于HTML5 SPA特性的历史API)
- Flutter路由管理指北
- React路由跳入新页面滚动条不在初始位置
- 【路由基础】