目前正在试验Codeigniter 4过滤器,用于管理部分。
在$filters上,我可以像这样排除一个函数吗:
public $filters = [
'authenticate' => [
'before' => [
'admin/*',
],
'except' => [
'admin/verify'
],
],
];
因此,它基本上添加过滤器'authenticate'到每个管理控制器,除了验证一个。
好像不管用。
还想在这个$filters变量上使用如下参数:
public $filters = [
'authenticate:admin' => [
也不起作用。
我能使它在路由上工作吗,但是我需要指定所有的控制器函数来使过滤器工作。参数也在路由上工作。
谢谢
1条答案
按热度按时间6uxekuva1#
文件提到这一点非常糟糕:
在过滤器设置中可以使用URI的任何地方,都可以使用正则表达式,或者像本例中那样,使用星号作为通配符,该通配符将匹配其后的所有字符。
所以你可以使用一个普通的正则表达式来实现你的目标。例如,如果你想让
user/*
的所有路由都通过authentication
过滤器,而不是user/settings
,这是一个可行的方法: