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}
这是我的类别和子类别的 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}