Как правильно использовать псевдоним модели cakephp

Если бы вы были так любезны предоставить базовый код, показывающий, как правильно использовать псевдоним модели.

Моя главная путаница на

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

  2. Приведите пример использования псевдонима в контроллере.

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


person CMS scripting    schedule 07.10.2012    source источник
comment
Какую проблему вы собираетесь решить?   -  person bancer    schedule 07.10.2012
comment
Внутренняя система обмена сообщениями для веб-сайта. У меня есть модель, но, очевидно, тот факт, что у нее есть несколько ForeignKeys для моей пользовательской модели, затрудняет ее реализацию, я видел примеры и псевдонимы, это путь, я просто запутался в том, как их на самом деле следует использовать. С моей стороны это довольно невежественно, но документации и кода, объясняющего это, очень мало. Помощь   -  person CMS scripting    schedule 07.10.2012
comment
На аналогичный вопрос уже был дан ответ - stackoverflow.com/questions/4275154/   -  person bancer    schedule 08.10.2012


Ответы (1)


  1. Нет, вам не нужно создавать контроллер и представления для модели с псевдонимом.
  2. Рассмотрим, например. таблицы сообщений, которая имеет внешние ключи sender_id и Receiver_id, которые оба указывают на модель пользователей. Таким образом, в вашей модели сообщения объявление ассоциации будет выглядеть примерно так:

    public $belongsTo = array(
        'Sender' => array(
            'className' => 'User',
            'foreignKey' => 'sender_id'
        ),
        'Recipient' => array(
            'className' => 'User',
            'foreignKey' => 'recipient_id',
        )
    );

В вашем контроллере сообщений, если вы хотите получить доступ к отправителю, вы используете $this->Message->Sender или для получателя $this->Message->Recipient. Если вы выполняете поиск в модели сообщений, то результирующий массив будет иметь отправителя (ов) в разделе «Отправитель» и получателя (ов) в разделе «Получатель» соответственно.

person ADmad    schedule 08.10.2012