Codeigniter类别和子类别功能并传递给smarty变量

时间:2015-06-05 10:51:50

标签: php codeigniter smarty

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

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返回。

电源逆变器

离网纯正弦波

网格绑定字符串

Micro Grid Tie

我希望实现的结果并传递给smarty变量

太阳能电池板

单晶硅

多晶

柔性太阳能

充电控制器

PWM

MPPT技术

电源逆变器

离网纯正弦波

网格绑定字符串

Micro Grid Tie

2 个答案:

答案 0 :(得分:2)

我有同样的问题,我通过一个mysql查询获得所有父类别,而在另一个我选择所有类别,只需我将变量分配给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}

答案 1 :(得分:1)

遍历您的$ 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}