您的位置:首页 > 编程语言 > PHP开发

Laravel框架 -- 分类无限递归渲染视图操作

2018-08-14 17:44 106 查看
class MenuPresenter {
/**
* 分类列表视图
* @param $menus
* @param $name
* @param $id
* @param $pid
* @return string
*/
public function getMenuList($menus, $name, $id, $pid)
{
if ($menus) {
$item = '';
foreach ($menus as $v) {
$item .= $this->getNestableItem($v, $name, $id, $pid);
}
return $item;
}
return '暂无菜单';
}

/**
* 返回HTML代码
* @param $menu
* @param $name
* @param $id
* @param $pid
* @return string
*/
protected function getNestableItem($menu, $name, $id, $pid)
{
if ($menu['fillable']) {
return $this->getHandleList($menu[$id], $menu[$name], $menu['fillable']);
}
if ($menu[$pid] == 0) {
return '
<li class="dd-item" '.$menu[$id].'>
<div class="dd-handle"> '.$menu[$name].'
</div>
</li>';
}
return '
<li class="dd-item" '.$menu[$id].'">
<div class="dd-handle"> '.$menu[$name].'
</div>
</li>';
}

/**
* 判断是否存在子集
* @param $id      数据库的ID字段
* @param $name        数据库的name字段
* @param $pid     数据库的pid字段
* @param $fillable
* @return string
*/
protected function getHandleList($id, $name, $fillable)
{
$handle = '
<li class="dd-item" data-id="'.$id.'">
<div class="dd-handle"> '.$name.'
</div>
<ol class="dd-list">';
if ($fillable) {
foreach ($fillable as $v) {
$handle .= $this->getNestableItem($v, 'catename', 'cate_id', 'cate_pid');
}
}
$handle .= '</ol></li>';
return $handle;
}
}
阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: