PDA

View Full Version : درخت ها و زیر درخت ها



reza.palang
دوشنبه 30 شهریور 1388, 15:52 عصر
سلام
من تونستم با tree helper به صورت درحتی (با استفاده از parent_id) اطلاعاتم رو نمایش بدم. ولی زیر درخت ها رو نمیتونم.
راه حلش چیه؟
ممنون

zoghal
سه شنبه 31 شهریور 1388, 08:24 صبح
قبلا گفتم خدمتتون با یکی از آپشن ها دستور find
هالا منظورتون از زیر درخت چیه نمی دونم

reza.palang
سه شنبه 31 شهریور 1388, 09:34 صبح
سلام.
مثلا زیر محموعه های work زو به صورت درختی می خوام داشته باشم.
البته میتونم با تابع children که مال tree helper هست داشته باشمشون ولا یبه صورت درختی موفق نشدم.


My Categories
| Fun
| | Sport
| | | Surfing
| | | Extreme knitting
| Work
| | Reports
| | | Annual
| | | Status



دقیقا منظورم اینه که می خوام id یک گره رو به یک تابع بدم و فرزندانش رو به صورت درختی به من بده.

zoghal
سه شنبه 31 شهریور 1388, 11:23 صبح
به دقت به پارامتر های find نگاه کنید

zoghal
سه شنبه 31 شهریور 1388, 15:13 عصر
دوست عزیز احساس میکنم شما کمی تنبلی می کنید . چون در تاپیک قبلی شما سر این موضوع بحث شد.

شما ابتدا باید گرده و نود های زیرین رو پیدا کنید

$q = $this->ModelName->find('threaded', array('conditions' => array('id' => 42)))
بعد نتیجه رو به view میفرستید.

$this->set('data',$q);

حال در view کافیه این دستور را استفاده کنید.

echo $html->nestedList($data)

برای استایل دادن هم می تونید از css استفاده کنید
یا به این لینک مراجه کنید
http://api.cakephp.org/class/html-helper#method-HtmlHelpernestedList

reza.palang
سه شنبه 31 شهریور 1388, 22:36 عصر
ممنون برای جوابتون.
نه والا تنبلی نمی کنم. اونجا فقط tree helper به من معرفی شد.
خیلی هم این رو تست کردم.همه چیز خوب بود ولی نمایشش به صورت درختی نبود.
البته پست قبلیتون راهنمای خوبی بود که توی این پست همش رو گزاشتید.
باز هم تشکر

cybercoder
یک شنبه 24 آبان 1388, 14:49 عصر
function recursiveSelect() {
$model = $this->name;
$data = $this->generateTreeList(array(), '{n}.' . $this->name . '.id', '{n}.' . $this->name . '.title', '--', 4);
return $data;
}

موفق باشید

reza.palang
یک شنبه 24 آبان 1388, 15:42 عصر
1 Gig تشکر
البته دلیل اینکه به من درست جواب نمیداد این بود که به طرز استفاده از مقادیر lft و right دقت نکرده بودم.