【问题标题】:Breadcrumbs error in KohanaKohana中的面包屑错误
【发布时间】:2011-10-21 17:03:05
【问题描述】:

我正在使用https://github.com/RaymondCrandall/kohana-breadcrumbshttps://github.com/RaymondCrandall/kohana-breadcrumbs 使用 Kohana 框架在我的应用程序上实现面包屑

我有一个类别部分,内部有许多其他子类别 n 等等。一个名为 Category.php 的控制器有两个动作: 1. index($cat) (当我点击每个类别直到它到达最后一个子类别时调用) 2. category($cat) (当我点击最后一个子类别时调用,即在叶节点上)

我将代码写入这两个动作的方式是:

        Breadcrumbs::add(Breadcrumb::factory()->set_title("Home")->set_url(url::site()));
        Breadcrumbs::add(Breadcrumb::factory()->set_title("Categories")->set_url(url::site('categories')));

        if($cat != NUll) {
            Breadcrumbs::add(Breadcrumb::factory()->set_title($cat)->set_url(url::site('categories/' .$cat )));
        }
        $actual = Breadcrumbs::get();
        $view->breadcrumbs = $actual;

问题是它只显示了三个级别。如何将其扩展到 4 级或更高级别。 例如。首页>类别>文具>连衣裙。如何保存以前的 $actual 值?

所以,当我点击连衣裙时,会调用索引操作并将我的数组替换为 home>category>dress 自参数'$cat=dress'。

【问题讨论】:

    标签: kohana helper breadcrumbs


    【解决方案1】:

    我认为这与提到的插件没有太大关系。

    您只是使用类别名称字符串,一个简单的字符串甚至不知道什么是类别,事件更少它的名称是什么,以及层次结构。

    我看到三个选项:

    1. 从数据库或存储它们的任何位置获取所有父关系,运行一个打印面包屑的循环,直到它到达叶子。
    2. 映射您的操作,使其接受完整路径,例如“index/stationary/dress”,并从路径参数中提取所有值(在这种情况下无需调用 DB)
    3. 在会话中存储一个包含先前值的数组,并从该数组重新创建面包屑。这里也没有数据库调用。请注意,在这种情况下,您必须小心何时清空数组。取决于你的逻辑。您必须识别叶子何时被击中,然后清空数组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-11
      • 2011-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多