В чем разница между моделью-> псевдонимом и моделью-> именем в CakePHP? - PullRequest
6 голосов
/ 30 июля 2009

alias и name оба свойства в моделях тортов. Они кажутся похожими, но, поскольку они оба существуют, должна быть разница. Что это?

Ответы [ 4 ]

5 голосов
/ 31 июля 2009

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

Например:

$hasMany = array('UserNew' => array('className' => 'User'));

В этом случае вы используете модель, которая на самом деле называется User, но вы называете ее «UserNew».

0 голосов
/ 22 апреля 2014
  • name: название модели, например Post.
  • alias: псевдоним модели, используется для регистрации экземпляра в ClassRegistry, например ParentThread.

Модель :: __ construct ()

Взгляните также на этот вопрос.

0 голосов
/ 22 апреля 2014

Если вы хотите временно изменить таблицу в модели и переопределяете магию CakePHP FROM, измените $ this-> alias на то, что вы хотите, чтобы он вызывался. $ this-> name, кажется, используется в конструкторе и должно создавать псевдоним где-то в этом процессе. Изменение $ this-> name в методе, который вы хотите переопределить, недостаточно. Вам нужно изменить $ this-> alias и выполнить метод setSource (), как показано ниже:

function my_override_method(){
  $this->setSource('new_db_table_name_here');
  $this->alias = "NewTable";
}
0 голосов
/ 31 июля 2009

Это набор псевдонимов таблиц, используемых, когда торт делает соединение. От cake/lib/model/model_php5.php:

/**
 * Alias table names for model, for use in SQL JOIN statements.
 *
 * @var array
 * @access public
 */
    var $alias = array();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...