1 回答
TA贡献1851条经验 获得超4个赞
我没有尝试检索当前路由,而是在每个路由回调中创建了一个包含路由名称的字符串变量,然后将该名称作为参数传递给渲染器(在这种情况下,我使用的是 Slim 的 php-view 包)。这是一个示例,将字符串作为参数传递"dashboard"给模板文件:dashboard.phtml
$app->get('/dashboard', function (Request $request, Response $response, array $args) {
$args['pageTitle'] = "dashboard";
return $this->renderer->render($response, 'register.phtml', $args);
});
根据$args['pageTitle']路由的名称,键被分配一个关键字标识符作为字符串。
然后,在我的header.phtml文件中,我创建了一个 switch 语句,它将 的值$args['pageTitle']与一组硬编码的字符串进行比较,以确定要加载的适当样式表:
<head>
<title>Slim 4 PHP Template</title>
<?php
if(isset($pageTitle)) {
switch($pageTitle) {
case "dashboard":
echo "<link rel='stylesheet' type='text/css' href='assets/css/dashboard.css'>";
break;
case "register":
echo "<link rel='stylesheet' type='text/css' href='assets/css/register.css'>";
break;
}
}
?>
</head>
在“ http://example.domain.com/dashboard ”访问路由时,会呈现相应样式表的链接,如下所示:
<head>
<title>Slim 4 PHP Template</title>
<link rel="stylesheet" type="text/css" href="assets/css/dashboard.css">
</head>
- 1 回答
- 0 关注
- 159 浏览
添加回答
举报