Yii2 面包屑的两种不同方式
Yii2 Two different way for breadcrumbs
我有一个 gii 生成的 view.php 页面,可以从两个不同的路径访问它,但面包屑是相同的。有人知道如何解决吗?
让我解释一下:我有 view.php 视图,它显示了所做报告的摘要,可以从两个路径到达:
- 当我创建一个新报告时,路径应该是 HOME / CREATION / VIEW;
- 还有一个向用户显示她发送的报告摘要的部分,因此面包屑应该是主页/摘要/视图。
- 您有 2 个选项可以知道它来自哪里:
在每个 link 或重定向中发送查询变量以手动构建面包屑。喜欢:$value = Yii::$app->request->getQueryParam('breadcumb')
其他选项是获取推荐人 url。并根据您可以将其传递给开关的值。您可以使用以下方式获取推荐人的 url:$value = Yii::$app->request->getReferrer()
.
然后切换构建 link:
switch(value) {
case 'creation':
$label = 'CREATION';
$url = 'url_of_creation';
break;
case 'summary':
$label = 'SUMMARY';
$url = 'url_of_summary';
break;
}
然后就做这样的事情:
$this->params['breadcrumbs'][] = ['label' => $label, 'url' => $url];
这是一个简短的面包屑解决方案,使用 match()
:
$this->params['breadcrumbs'][] = match($path) {
'creation' => ['label' => 'Creation', 'url' => Url::to['creation'],
'summary' => ['label' => 'Summary', 'url' => Url::to['summary'],
};
$path
应在控制器中设置或由 Yii::$app->request->getReferrer()
确定。
请注意,这需要 PHP8。
我有一个 gii 生成的 view.php 页面,可以从两个不同的路径访问它,但面包屑是相同的。有人知道如何解决吗?
让我解释一下:我有 view.php 视图,它显示了所做报告的摘要,可以从两个路径到达:
- 当我创建一个新报告时,路径应该是 HOME / CREATION / VIEW;
- 还有一个向用户显示她发送的报告摘要的部分,因此面包屑应该是主页/摘要/视图。
- 您有 2 个选项可以知道它来自哪里:
在每个 link 或重定向中发送查询变量以手动构建面包屑。喜欢:
$value = Yii::$app->request->getQueryParam('breadcumb')
其他选项是获取推荐人 url。并根据您可以将其传递给开关的值。您可以使用以下方式获取推荐人的 url:
$value = Yii::$app->request->getReferrer()
.
然后切换构建 link:
switch(value) { case 'creation': $label = 'CREATION'; $url = 'url_of_creation'; break; case 'summary': $label = 'SUMMARY'; $url = 'url_of_summary'; break; }
然后就做这样的事情:
$this->params['breadcrumbs'][] = ['label' => $label, 'url' => $url];
这是一个简短的面包屑解决方案,使用 match()
:
$this->params['breadcrumbs'][] = match($path) {
'creation' => ['label' => 'Creation', 'url' => Url::to['creation'],
'summary' => ['label' => 'Summary', 'url' => Url::to['summary'],
};
$path
应在控制器中设置或由 Yii::$app->request->getReferrer()
确定。
请注意,这需要 PHP8。