بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

ایجاد category-hierarchy

مدیریت گفتگو
XaniX 8 سال پیش
آخرین تغییر: 7 سال پیش

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

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

نظرات

MOJTABA 7 سال پیش
به نظر من باید یک فیلد به جدول اضافه کنین که عمق دسته رو توی درخت مشخص کنه

پاسخ‌ها 1

XaniX 7 سال پیش

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

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

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

نظرات


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