آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

ایجاد category-hierarchy

XaniX  5 سال پیش  5 سال پیش
+1 0

دوستان عزیز من نیاز دارم در فریم ورک برای بخش 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 والد است

لطفا راهنمایی فرمایید که چطور باید چنین چیزی را در فریم ورک قرار دهم

0 0
به نظر من باید یک فیلد به جدول اضافه کنین که عمق دسته رو توی درخت مشخص کنه (5 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
XaniX  5 سال پیش
+1 0

سلام وقت بخیر من به جواب رسیدم خیلی ساده است 

جدول دقیقا همین بالایی است 

یعنی در صورتی 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 هم از این جدول می تونید استفاده کنید


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .