我在我的Jobs控制器中运行以下内容。
$this->set('jobs', $this->Job->find('threaded', array('conditions' => array('Job.id' => 20))));
现在在我看来,我在$jobs
循环中显示foreach
很好,但我的问题是我使用字段parent_id将子项链接到Job.id.我知道链接工作正常,因为我可以看到数组中的子节点。
Array
(
[0] => Array
(
[Job] => Array
(
[id] => 20
[parent_id] => 0
[rght] => 2
[lft] => 1
[client_id] => tasd
[contact] => asdf
[email] => sdf
[address] =>
[lat] =>
[long] =>
[user_id] => 1
[request_type_id] => Electrical
[date_start] => 0000-00-00 00:00:00
[date_end] => 0000-00-00 00:00:00
[date_complete] => 0000-00-00 00:00:00
[date_closed] => 0000-00-00 00:00:00
[status] => completed
[brief_desc] => aasdf
[desc] => asdfasdf
[cost_est] => 3434.00
[cost_actual] =>
[created] => 2011-12-18 20:39:24
[modified] => 2011-12-18 20:39:24
)
[Children] => Array
(
[0] => Array
(
[id] => 21
[parent_id] => 20
我想在父作业下显示子作业。究竟嵌套注释应该如何工作。任何帮助都会很棒。
答案 0 :(得分:1)
如果有人想在cakephp视图中显示find('threaded')结果,他们可以使用:
控制器代码:
$params = array('recursive' => -1,'fields' => 'Category.id, Category.name, Category.parent_id');
$categories = $this->Category->find('threaded',$params);
并在视图中显示您的线程结果:
foreach($categories as $category):
$category_name = $category['Category']['name'];
foreach($category['children'] as $children):
$sub_category = $children['Category']['name'];
endforeach;
endforeach;
我不知道它是否显示结果的正确方法,但它工作正常。 希望对某人的帮助:) 我是cakephp的新手,也是学习基础知识的人。如果发现任何错误,请原谅我。
答案 1 :(得分:0)
答案 2 :(得分:0)
我意识到这是旧的,但我今天试图解决这个问题,并且能够通过以下方式使其工作(有点奇怪):
$this->set('jobs',
$this->Job->find('threaded', array(
'conditions' => array(
'OR' => array(
Job.id' => 20,
Job.parent_id => 20
)
)
)
);
希望这可以为某人节省一些时间...