無制限極小欄名の追加を実現

1845 ワード

ステップ1:Categoryなどのコラムを作成する
データベースは、id(欄ID)、tid(上位欄)、neme(欄名)
as CategoryModel;
class Category extends Controller
{
    public function add()
    {
        $category = new CategoryModel();
        if (request()->isPost()) {
            $data = input('post.');
            if ($category->add($data)) {
		$this->success('    ');
            } else {
		$this->error('    ');
            }
        }
        $tptc = $category->catetree();
        $this->assign('tptc' $tptc);
	return view();
    }
   
}

ステップ2:CategoryのようなコラムのModelを作成します.
class Category extends Model
{
    public function catetree()
    {
        $tptc = $this->order('id ASC')->select();
        return $this->sort($tptc);
    }
    public function sort($data $tid = 0 $level = 0)
    {
        static $arr = array();
        foreach ($data as $k => $v) {
            if ($v['tid'] == $tid) {
                $v['level'] = $level;
                $arr[] = $v;
                $this->sort($data $v['id'] $level + 1);
            }
        }
        return $arr;
    }
}

ステップ3:テンプレートに直接無限極分類を参照する
{volist name="tptc" id="vo"}
{if condition="$vo['level'] neq 0"}|---{/if}{$vo.name}
{/volist}