cakePHP 2.0 find('threaded')问题

时间:2011-12-19 02:40:10

标签: php cakephp

我在我的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

我想在父作业下显示子作业。究竟嵌套注释应该如何工作。任何帮助都会很棒。

3 个答案:

答案 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
            )
         )
    )
);

希望这可以为某人节省一些时间...