CakePHP и контейнеры - PullRequest
       63

CakePHP и контейнеры

0 голосов
/ 13 июля 2011

Позвольте мне начать с того, что я пытался прочитать книгу CakePHP как можно больше по этой конкретной теме, и по какой-то причине я просто не могу понять это.

У меня есть несколькомодели:

человек

  • каждый человек может иметь много рабочих мест
  • каждая работа имеет один филиал и каждый филиал принадлежит одному городу.

Сначала я полагался на рекурсив, но он недостаточно настраиваемый (очевидно) действительно получает нужные данные.

https://github.com/jwg2s/temp

Я либо получаю слишком много данных в своем выводемассив, или вряд ли какой-либо вообще .. Я просто не могу понять это сдерживаемым, и если бы я мог увидеть пример того, что я пытаюсь сделать, это было бы здорово ...

Спасибо

1 Ответ

1 голос
/ 13 июля 2011

, так как вы читаете Поваренную книгу вверх и вниз, я не буду рассказывать вам все основные детали и просто попытаюсь объяснить, как использовать содержимое.

Вы можете использовать содержимое с find -функциями от ваших моделей. Либо от вашего контроллера, либо напрямую от вашей модели.
Большую часть времени я использую контроллер, поэтому я дам вам пример того, как вы будете делать это оттуда. Я также пытаюсь использовать ваш конкретный пример, чтобы у вас было с чем поработать.

/app/controllers/people_controller.php

function index() {
    //I like to write a separate array for fields and contain
    $fields = array(
        'name',
        'birthday',
        'gender'
    );

    /* It's important to know, that the fields will not get included into the
     * contain-array unless it's an associated model! */
    $contain = array(
        'Job' => array(
            //within another array you define the next level of contain
            'Branch' => array(
                //you get the deal...
                'City'
            ),
            //if you only need specific fields you can define this here like this:
            'fields' => array('title', 'date', 'salary'),
            //or order them directly!
            'order' => 'Job.salary DESC'
        )
    );

    //we now to our find-fall with our 2 arrays for the fields and the contain
    //every option (like fields or order) can be used in the containable
    $people = $this->Person->find('all', array('contain' => $contain, 'fields' => $fields));
}

Я надеюсь, что это помогло вам понять немного больше.

...