Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kohana 科哈纳面包屑错误_Kohana_Helper_Breadcrumbs - Fatal编程技术网

Kohana 科哈纳面包屑错误

Kohana 科哈纳面包屑错误,kohana,helper,breadcrumbs,Kohana,Helper,Breadcrumbs,我正在使用Kohana框架在我的应用程序上实现面包屑 我有一个类别部分,内部有许多其他子类别n等等。一个名为Category.php的控制器有两个动作: 1.当我单击每个类别直到它到达最后一个子类别时调用索引$cat 2.当我单击最后一个子类别,即叶节点时调用类别$cat 我将代码写入这两个动作的方式是: Breadcrumbs::add(Breadcrumb::factory()->set_title("Home")->set_url(url::site()));

我正在使用Kohana框架在我的应用程序上实现面包屑

我有一个类别部分,内部有许多其他子类别n等等。一个名为Category.php的控制器有两个动作: 1.当我单击每个类别直到它到达最后一个子类别时调用索引$cat 2.当我单击最后一个子类别,即叶节点时调用类别$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;
问题是它只显示了三个级别。如何将其扩展到第四级或更高级别。 例如:家>分类>文具>衣服。如何保存以前的$actual值

因此,当我单击dress时,会调用索引操作并用
home>category>dress,因为参数“$cat=dress”。

我认为这与所提到的插件没有多大关系

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

我认为有三种选择:

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