我已经使用以下几个条目定义了我的routes.ini
文件:
[routes]
GET /=PublicController->home
GET /login=PublicController->login
GET /logout=PublicController->logout
POST /auth=PublicController->auth
[...]
我想知道是否可以动态修改路线,这取决于任意条件来检查,例如:会话变量等等。
有没有办法做类似的事情:
if ($f3->get('SESSION.user.level') == 'admin') {
GET /=AdminController->home
} else {
GET /=UserController->home
}
<。>在.ini文件中?
答案 0 :(得分:2)
我一直在使用稍微不同的方法,并且认为我也会分享它。
在我的主index.php文件中,我查找url组件,并根据该
加载路由(并重载其他配置设置)if(explode('/',$_SERVER['REQUEST_URI'])[1] === "admin"){
$f3->config('../f3/app/config/config.admin.ini');
$f3->config('../f3/app/config/routes.admin.ini');
}
我使用它而不是Session,因为路由器中使用的控制器可以处理重定向到登录页面。您也可以继续使用我喜欢的ini文件中的路由。
答案 1 :(得分:1)
没有。 但令人惊讶的是你可以使用php:
if ($f3->get('SESSION.user.level') == 'admin') {
$f3->route('GET /','AdminController->home');
$f3->config('admin.ini');
} else {
$f3->route('GET /','UserController->home');
}