Codeigniter 类别和子类别函数并传递给 smarty 变量

Codeigniter categories and sub categories function and pass to smarty variable

这是我的类别和子类别的 codeigniter 代码,当我在第一个 foreach 之外回显结果或将结果传递给 smarty 时,它只输出最后一行和最后一个主 ID。 但是在关闭之前在第一个 foreach 中回显 } returns 所有结果。

function getAllCats(){
    $this->load->model('mHtml', 'mnMod');
    $main_cat = $this->mnMod->getncats();
    $all_cat = '';
    foreach($main_cat as $mcat){
        $all_cat = '<li><h3><a href="{base_url()}'.$mcat->cname.'">'.$mcat->cname.'</a></h3>';
        $sub_cat = $this->mnMod->getscats($mcat->categoryid);
            foreach($sub_cat as $scat){
                $all_cat .= '<a href="{base_url()}'.$scat->cname.'">'.$scat->cname.'</a><br />';
                }
        $all_cat .= '</li>';
    }
  //  echo $all_cat; die;
    $this->smarty->assign("nav", $all_cat);
}

使用 mymethod 返回的结果。

电源逆变器

离网纯正弦波

网格领带

微网格领带

我想要实现并传递给 smarty 变量的结果

太阳能电池板

单晶

多晶

灵活的太阳能

充电控制器

PWM

MPPT技术

电源逆变器

离网纯正弦波

网格领带

微网格领带

遍历您的 $main_cats 并为每个分配 sub_categories。好的做法是在执行此操作之前确保 $main_cats 是一个数组。

控制器:

function getAllCats() {
    $this->load->model('mHtml', 'mnMod');
    $main_cats = $this->mnMod->getncats();
    if(is_array($main_cats))
    foreach($main_cats as &$mcat) {
        $mcat['subcat'] = $this->mnMod->getscats($mcat->categoryid);
    }

    $this->smarty->assign("cats", $main_cats);
}

查看:

{if $cats}
     {foreach from=$cats item=cat}
        <li><h3><a href="{$cat.cname|base_url}">{$cat.cname}</a></h3>
        {foreach from=$cat item=sub_cat}
            <a href="{$sub_cat.cname|base_url}">{$sub_cat.cname}</a><br />
        {/foreach}
        </li>
     {/foreach}
{else}
    <p>No cats found</p>
{/if}

我有同样的问题我做了什么 我通过一个 mysql 查询获得所有父类别,在另一个我 select 所有类别中,只是我将变量分配给 smarty 并针对每个类别获取这些结果父类别。

$main_Categories = $this->model->all_categories();

$this->smarty->assign("main_Categories ", $main_Categories );

//在Smarty页面

    {foreach $main_Categories  $cat}
     {if $cat->parentid = 'your parent id'} // parent id will be same for all main ids.
       {$cat->category_name}<br />
    {assign 'cat_id'  $cat->cat_id}
    {foreach $main_Categories  as $sub}
      {if $cat_id eq $sub->parent_id}
        {$sub->category_name}<br />
           {/if}
         {/foreach}
         {/if}
         {/foreach}