Yii 嵌套设置到下拉菜单

2024-01-29

I'm using Yii nested set behavior, which helps me to keep my categories nested as seen here (nevermind title rows, they are in russian): enter image description here

我想做的就是拥有 Bootstrap 嵌套菜单,应该是这样的:

    $criteria = new CDbCriteria;
    $criteria->order = 'root, lft';
    $categories = Category::model()->findAll($criteria);
    foreach($categories as $i => $category) {
      $items[$i]['label'] = $category->title;
      $items[$i]['url'] = $category->url;
      $items[$i]['active'] = false;
      $items[$i]['items'] = array(
        array('label'=>'123', 'url'=>'#'),
        array('label'=>'123', 'url'=>'#'),
        array('label'=>'123', 'url'=>'#', 'items'=>array(
            array('label'=>'1234', 'url'=>'#'),
            array('label'=>'1234', 'url'=>'#'),
            array('label'=>'1234', 'url'=>'#', 'items'=>array(
                array('label'=>'1234', 'url'=>'#'),
                array('label'=>'1234', 'url'=>'#'),
                array('label'=>'1234', 'url'=>'#'),
            )),
        )),
    ); 
}
$this->widget('bootstrap.widgets.TbMenu', array(
    'type'=>'pills',
    'stacked'=>false, // whether this is a stacked menu
    'items'=>$items
)); 

我不明白如何完成这件事,顺便说一句我读过这个话题 http://semlabs.co.uk/journal/converting-nested-set-model-data-in-to-multi-dimensional-arrays-in-php只是不知道如何实际应用这个函数来解决我的问题。感谢任何帮助。


这是我用来格式化为json对象的函数,你可以修改它来生成php数组。

protected function formatJstree(){
        $categories = $this->descendants()->findAll();
        $level=0;
        $parent = 0;
        $data = array();
        foreach( $categories as $n => $category )
        {
            $node = array(
                'data'=> "{$category->title}",
                'attr'=>array('id'=>"category_id_{$category->category_id}")
            );
            if($category->level == $level){
                $data[$parent]["children"][] = $node;
            }
            else if($level != 0 && $category->level > $level){
                if(!isset($data[$n]["children"])){
                    $data[$n]["children"] = array();
                }
                $data[$parent]["children"][] = $node;
            }
            else
            {
                $data[] = $node;
                $parent = $n;
            }
            $level=$category->level;

        }
        return $data;

    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Yii 嵌套设置到下拉菜单 的相关文章

  • 如何从 Laravel 中的表中选择所有列名称?

    我试图从表中获取所有列名Teller 功能 public function getTableColumns tables return DB select DB raw SELECT COLUMN NAME DATA TYPE COLUMN
  • 当数据验证失败时保留表单字段中的值

    我在弄清楚验证失败时如何保留用户数据时遇到问题 我对 PHP 有点陌生 所以我的逻辑可能会犯一些巨大的错误 目前 如果验证失败 所有字段都会被清除 并且 Post 数据也会消失 这是一些代码 假设用户输入无效电子邮件 我希望保留 名称 字段
  • 如何检查PHP变量是否包含非数字?

    我只是想知道检查 PHP 变量中是否有非数字的方法以及它是否也检测字符之间的空格 需要确保我的表单字段中没有添加任何奇怪的内容 提前致谢 如果您的意思是您只想要一个包含数字的值 那么您可以使用ctype digit http php net
  • 生成大随机数 php [重复]

    这个问题在这里已经有答案了 我想使用 PHP 生成一个包含 75 个字符的数字 我到处寻找 但一无所获 除了这个 http dailycoding com tools RandomNumber aspx http dailycoding c
  • FPDI/FPDF:水印和打印多页

    我修改了这个堆栈问题 当用户尝试下载文件时在 pdf 文件上应用水印 https stackoverflow com questions 3983432 applying watermarks on pdf files when users
  • posts_search 中的自定义查询

    如何使用此查询作为我的自定义搜索查询 add filter posts search my search is perfect 20 2 function my search is perfect search wp query sWord
  • 如何使用 php 下载/打印页面的特定部分

    我有一个 HTML 页面如下 Lorem Ipsum is simply dummy text of the printing and typesetting industry Lorem Ipsum has been the indust
  • 为什么我需要结束 ob_start()?

    php 文档建议我应该用 ob end flush 结束每个 ob start 我在网站的每个页面上使用一个 只是为了允许我在应用程序中的任何位置使用 firephp 日志方法 该应用程序运行良好 但我想知道是否有任何我不知道的东西可能有害
  • 如何在原则 2 迁移中删除外键

    我想在原则 2 迁移中删除外键 但没有 dropForeignKeyConstraint 有谁知道怎么丢掉吗 public function down Schema schema table schema gt getTable table
  • 从 .phar 存档中提取文件

    对于 Phar 文件 我完全错过了一些东西 我正在安装一个需要 phpunit pdepend 和其他依赖项的项目 我将它们作为 phar 文件获取 但是 我无法使用命令行工具 php 命令 从中提取文件 我用谷歌搜索了这个问题 但没有发现
  • 在 PHP 中撤销 Google 访问令牌

    正如标题所示 我想以编程方式撤销授予的访问令牌 即在 PHP 中 我发现这个他们的网站 https developers google com identity protocols OAuth2WebServer tokenrevoke 但
  • PHP 脚本可以在终端中运行,但不能在浏览器中运行

    我正在尝试执行exec命令 但我遇到了问题 当我运行以下代码时 当我通过浏览器运行它时它不起作用 但如果我把输出 str将其复制并粘贴到终端中 它工作得很好 造成这种情况的原因是什么 我该如何解决 目前我正在运行localhost php
  • Woocommerce 结账自定义选择字段

    我有以下功能 将选择列表添加到 woo commerce 结账表单中 woocommerce form field airport pickup array type gt select class gt array airport pic
  • 在 apache docker 容器中运行虚拟主机

    我在同一个 apache 容器中有两个 php 应用程序 我试图在端口上运行其中一个应用程序 因为它需要通过根域而不是子文件夹进行访问 我想在端口 8060 上运行应用程序 我尝试使用 apache 虚拟主机执行此操作 但它不会加载页面 h
  • 跟踪用户何时点击浏览器上的后退按钮

    是否可以检测用户何时单击浏览器的后退按钮 我有一个 Ajax 应用程序 如果我可以检测到用户何时单击后退按钮 我可以显示适当的数据 任何使用 PHP JavaScript 的解决方案都是优选的 任何语言的解决方案都可以 只需要我可以翻译成
  • 如果循环中内存超出,我可以在 for 循环中抛出异常吗?

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何处理 foreach 循环中发生
  • 表单提交后如何保留选择字段中的选定值?

    我有一个用于将票证上传到数据库的主页 我有一个选择字段 我想保留用户在提交表单之前选择的值 但它没有发生 这是我选择字段的代码
  • 标准化 UTF-8 到底是什么?

    The 重症监护室项目 http userguide icu project org transforms normalization 现在也有一个PHP库 http us php net manual en class normalize
  • 我可以使用 jQuery 打开下拉列表吗

    对于 HTML 中的下拉列表
  • 无法显示 Laravel 欢迎页面

    我的服务器位于 DigitalOcean 云上 我正在使用 Ubuntu 和 Apache Web 服务器 我的家用计算机运行的是 Windows 7 我使用 putty 作为终端 遵循所有指示https laracasts com ser

随机推荐

  • 如何在 Visual Studio Code 中禁用 PHP 验证?

    在 Windows 版本的 Visual Studio Code 版本 0 10 1 中打开任何 PHP 文件时 我收到消息 无法验证 php 文件 没有找到php程序 使用 php validate executablePath 设置来配
  • 在 PHP7 中本机分析多个脚本

    自 PHP 7 发布以来 现在不可能使用以下命令来分析整个脚本选择declare ticks 1 在你的基本文件中 然后使用register tick function 监视每个刻度 因为它不再遵循包含路径 根据提交的 PHP 错误http
  • 如何解决.NET Core包版本冲突

    我正在从 NET MVC 5 Web 应用程序迁移到 NET Core 2 2 Web API 项目以及五个 NET Standard 2 0 项目 所有项目都托管在一个解决方案下 我现在收到 28 个关于包冲突的警告 MSB3277 这些
  • 如何更改geom_point中的颜色或ggplot中的线条[重复]

    这个问题在这里已经有答案了 我有一个这样的数据 data lt structure list sample structure c 1L 1L 1L 1L 1L 1L 1L 1L 1L 1L 2L 2L 2L 2L 2L 2L 2L 2L
  • 重载或可选参数之间的性能差异?

    我想知道是否应该在 C 中使用可选参数 到目前为止 我总是重载方法 但可选参数也很好 更干净 代码更少 我在其他语言中使用它们 所以我在某种程度上也习惯了它们 有什么反对使用它们的吗 性能对我来说是第一个关键点 会掉吗 Example co
  • 如何保存 raphael 生成的 svg

    有没有办法将 raphael 生成的 SVG 保存为 svg 文件 请注意 它只需要在 Chrome 中工作 我想出了一个解决方案拉斐尔导出 https github com ElbertF Raphael Export 它给了我一个有效的
  • 更新已部署的 SSIS 包

    我有一个已部署的 SSIS 包 其中包含时间表和所有内容 现在 我对这个包进行了更改 我是否必须重新部署它 并再次为其设置计划 或者是否有办法让已部署的 SSIS 包更新为最新版本 是的 您需要将包重新部署到调度程序期望找到包的任何位置 但
  • 在 Tensorflow 2 中将梯度可视化为热图

    我正在研究通过引导反向传播生成热图的任务 我重写了原来的Relu并获得了每个参数的梯度 但是 我不确定下一步应该做什么 感谢您的帮助 谢谢你 这是我的代码 我首先使用 tf RegisterGradient GuidedRelu like
  • Python urlparse——提取不带子域的域名

    需要一种使用 Python urlparse 从 url 中提取不带子域的域名的方法 例如我想提取 google com 来自完整的网址 例如 http www google com 我能想到的最接近的urlparse is the net
  • 如何在Python中将JSON字符串转换为整数?

    如何将此 json 中的年份和 isbn 转换为整数 title The Notebook author Nicholas Sparks year 1996 isbn 0553816713 您可以简单地用相应的 int 值更新这些值 dat
  • XStream:解析时 XML 层次结构崩溃

    我有一个 XML 文档 由 Adob e XFA 表单生成 其中包含如下数据
  • fullcalendar.io 可以在 .net core Blazor 中使用吗?

    我尝试在 Blazor WebAssembly 页面中使用 FullCalendar 任何人都知道如何在 Blazor 中使用 FullCalendar 任何人都可以帮助我吗 我将 FullCalendar 包含在 libman json
  • 安装和导出仅 INTERFACE 库,CMake

    新的 CMake 用户在这里 我使用以下 CMake 文件制作了一个简单的仅标头库 cmake minimum required VERSION 3 7 project mylib VERSION 0 1 LANGUAGES CXX set
  • 是否可以在悬停时隐藏链接地址?

    我已经设置了一个包含很多链接的图表 当您将鼠标悬停在链接上时 它会显示链接在浏览器左下角的位置 这真的让我很烦恼 如下所示 可以删除这个吗 只要我可以隐藏 删除它 任何方法都可以 HTML CSS JS 等 仅当您使用 a 带有集合的元素h
  • 标题和元标签未在服务器中的角度 SSR 中呈现

    我在前端使用 Angular 6 开发了一个网站 默认情况下 Angular 对 SEO 不友好 因此为了做到这一点 我以 Angular Universal 或 Angular SSR 服务器端渲染 的方式实现它 我更新了代码并比较了之前
  • “SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED”和视图

    如果你设置SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED在从具有从多个表中进行复杂选择的视图中进行选择的存储过程中 这个位置READ UNCOMMITTED该视图中所有表的事务隔离级别 Th
  • 使用 Javascript 读取 CSV 标头

    我有一个 csv 文件 其标题如下所示 header1 header2 header3 header4 value1 value2 value3 value4 value1 value2 value3 value4 value1 value
  • 同步三个ajax请求

    我有三个 AJAX 请求相继触发 并且我希望能够同时回显所有数据 ajax type POST url page1 php data var1 var1 success function msg results2 load page2 ph
  • Android Facebook SDK SSO“无法显示您请求的页面”

    我一整天都被这个非常令人沮丧的问题困扰 通过 Google 我发现很多人都有同样的问题 但没有与新的 Android 版 Facebook API 相关的答案 我已完全按照此处列出的步骤进行操作 https developers faceb
  • Yii 嵌套设置到下拉菜单

    I m using Yii nested set behavior which helps me to keep my categories nested as seen here nevermind title rows they are