CakePHP: самые основы Containable - PullRequest
       40

CakePHP: самые основы Containable

0 голосов
/ 08 августа 2011

Я много читал о том, насколько велика сдерживаемость.Честно говоря, я прочитал все документы, у меня он работает на контроллере Users, но некоторые вещи не ясны:

  1. Нужно ли использовать его во всех действиях или только в Index ()?
  2. Должен ли я определять его в каждой функции контроллера index () или этого достаточно один раз в контроллере Users
  3. Как насчет того, если, например, Country_ID является FK, подключенным как к пользователю, так и к нему?родственная модель?Например:

    function index() {
       $this->paginate = array(
                'limit'=>10,
                'order'=>'User.created DESC',
                'fields'=>array('User.id','User.name', 'User.country_id', 'User.email'),
                'contain'=>array(
                    'Post',
                    'Company' => array(
                        'Country' => array(
                            'fields' => array('id', 'country')
                        )
                    ),
                    'Position' => array(
                        'Profession'
                    ),
                    'Preference',
                    'Country',
                    'Type'
                    ),
    
            );
            $this->set('users',$this->Paginate('User'));
    

    }

Страна связана с Пользователем и Компанией.Как определить это без создания дубликатов?

Большое спасибо!

1 Ответ

1 голос
/ 08 августа 2011

Похоже, у вас неправильное представление о содержании.Это «позволяет фильтровать и ограничивать операции поиска модели».Вы используете его всякий раз, когда вам нужно включить (или исключить) определенные связанные данные модели в свой метод find ().

Например, профиль пользователя hasOne, hasMany Roles, принадлежащий компании.И вам нужно получить все роли и связанные компании для пользователя, но вам не нужен профиль, вы можете использовать $this->User->find('first',array('conditions'=>...,'contain'=>array('Role'=>array('Company'))))

Он не имеет ничего общего с index () или users_controller.

Country is both connected to User and Company. How to define this without creating duplicates? Что дублирует?

...