ایجاد category-hierarchy
دوستان عزیز من نیاز دارم در فریم ورک برای بخش blog از category درختی استفاده کنم اما نمی دانم چطور باید ان را ایجام کنم
طبق بررسی های انجام شده در پایگاه داده بایستی از روش زیر اطلاعات را ایجاد نمود
+----+----------------------+-----------------+ | id | category_name | parentCat | +----+----------------------+-----------------+ | 1 | cat1 | 0 | +----+----------------------+-----------------+ | 2 | cat2 | 0 | +----+----------------------+-----------------+ | 3 | cat3 | 0 | +----+----------------------+-----------------+ | 4 | catxxxxxxxx | 1 | +----+----------------------+-----------------+ | 5 | catxxxxxxx | 1 | +----+----------------------+-----------------+ | 6 | catxxxxxxxxx | 3 | +----+----------------------+-----------------+ | 7 | catxxxxxxxxx | 3 | +----+----------------------+-----------------+ | 8 | catxxxxxxxxxx | 2 | +----+----------------------+-----------------+ | 9 | catxxxxxxxxxxx | 2 | +----+----------------------+-----------------+ | 10 | catxxxxxxxxxxx | 5 | +----+----------------------+-----------------+ | 11 | catxxxxxxxxxxxxx | 5 | +----+----------------------+-----------------+
در قسمت id همان id ها وارد می شود که برای هر ردیف یک اد index گذاری می شود
در قسمت category name نام یا عنوان گروه وارد می شود
و در قسمت parentId مربوط به id والد است
لطفا راهنمایی فرمایید که چطور باید چنین چیزی را در فریم ورک قرار دهم
سلام وقت بخیر من به جواب رسیدم خیلی ساده است
جدول دقیقا همین بالایی است
یعنی در صورتی parent id ==0 باشه یعنی id والد است و id فرزند های و فرزاندان فرزند parent id ذخیره می شود
در بخش controller از کد زیر استفاده می کنیم
private function category(){
$refs = array();
$list = array();
$result=BlogModel::category();
foreach ($result as $row)
{
$ref = & $refs[$row['category_id']];
$ref['cat_Parent_id'] = $row['cat_Parent_id'];
$ref['cat_Title'] = $row['cat_Title'];
$ref['category_id'] = $row['category_id'];
$ref['cat_ModifyTime']= $row['cat_ModifyTime'];
if ($row['cat_Parent_id'] == 0)
{
$list[$row['category_id']] = & $ref;
}
else
{
$refs[$row['cat_Parent_id']]['children'][$row['category_id']] = & $ref;
}
}
return $list;
}
و در سمت view از فانکشن زیر استفاده می کنیم
function toUL(array $array) { $html = '<ul>' . PHP_EOL; foreach ($array as $value) { $html .= '<li>' . $value['name']; if (!empty($value['children'])) { $html .= toUL($value['children']); } $html .= '</li>' . PHP_EOL; } $html .= '</ul>' . PHP_EOL; return $html; }
این فانکشن دسته بندی درختی را ایجاد می کند
جالبه بدونین که برای منو های چند سطحی و comment هم از این جدول می تونید استفاده کنید
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .