code.zan
جمعه 21 فروردین 1394, 16:14 عصر
من میخوام دسته بندی هام رو به صورت treeview نمایش بدم.
با جستجو متوجه شدم که باید از الگوریتمی استفاده کنم که به صورت بازگشتی دسته بندی ها و زیردسته هاشون رو برام تو یک آرایه منظمی قرار بده.
خب سوال ام اینه که، من برای ساختن اون آرایه منظم باید تو یک قسمت از کد بیام تمام فرزندان هر دسته رو fetch کنم.(کد زیر)
private function childrenOf($item) {
$result = array();
foreach($this->items as $i) {
if ($i->parent_id == $item->id) {
$result[] = $i;
}
}
return $result;
}
اما من که میخوام از فریم ورک استفاده کنم برای پیدا کردن فرزندان دسته می تونم به جای اینکه مثل کد بالا تمام آرایه شامل دسته بندی ها رو تو لوپ بندازم و با یک if والد دسته رو چک کنم. یه کار دیگه کنم یعنی از relation ها استفاده کنم. و بگم
$category->subCategories;
ولی اگر این کار رو کنم فکر می کنم که اگر 1000 تا دسته داشته باشم 1000 بار این کوئری و رجوع به دیتابیس انجام میشه و وحشتناکه :متفکر:
چیکار کنم از relation ها استفاده نکنم تو این مورد و مثل الگوریتم اولی تو حلقه چک کنم؟؟
با جستجو متوجه شدم که باید از الگوریتمی استفاده کنم که به صورت بازگشتی دسته بندی ها و زیردسته هاشون رو برام تو یک آرایه منظمی قرار بده.
خب سوال ام اینه که، من برای ساختن اون آرایه منظم باید تو یک قسمت از کد بیام تمام فرزندان هر دسته رو fetch کنم.(کد زیر)
private function childrenOf($item) {
$result = array();
foreach($this->items as $i) {
if ($i->parent_id == $item->id) {
$result[] = $i;
}
}
return $result;
}
اما من که میخوام از فریم ورک استفاده کنم برای پیدا کردن فرزندان دسته می تونم به جای اینکه مثل کد بالا تمام آرایه شامل دسته بندی ها رو تو لوپ بندازم و با یک if والد دسته رو چک کنم. یه کار دیگه کنم یعنی از relation ها استفاده کنم. و بگم
$category->subCategories;
ولی اگر این کار رو کنم فکر می کنم که اگر 1000 تا دسته داشته باشم 1000 بار این کوئری و رجوع به دیتابیس انجام میشه و وحشتناکه :متفکر:
چیکار کنم از relation ها استفاده نکنم تو این مورد و مثل الگوریتم اولی تو حلقه چک کنم؟؟