CakePHP中model-> alias和model->名称之间的区别是什么?

时间:2009-07-30 03:28:29

标签: php cakephp

aliasname都是蛋糕模型中的属性。它们似乎相似,但由于它们都存在,因此必然存在差异。它是什么?

4 个答案:

答案 0 :(得分:5)

我猜,但是当你在模型和另一个模型之间建立关系时,别名可以是赋值,并且你给关联的模型一个不等于该类的名称。

例如:

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

在这种情况下,您使用的是实际上称为User的模型,但您将其称为“UserNew”。

答案 1 :(得分:0)

它是cake执行连接时使用的表别名的集合。来自cake/lib/model/model_php5.php

/**
 * Alias table names for model, for use in SQL JOIN statements.
 *
 * @var array
 * @access public
 */
    var $alias = array();

答案 2 :(得分:0)

如果您想暂时更改模型中的表格,并且重新覆盖CakePHP魔术FROM,请将$ this->别名更改为您想要的名称。 $ this-> name似乎在构造函数中使用,并且必须在该进程中的某处构建别名。在要覆盖的方法中更改$ this-> name是不够的。您必须更改$ this->别名并执行方法setSource(),如下所示:

function my_override_method(){
  $this->setSource('new_db_table_name_here');
  $this->alias = "NewTable";
}

答案 3 :(得分:0)

  • name:模型的名称,例如Post
  • alias:模型的别名,用于在ClassRegistry中注册实例,例如ParentThread

Model::__construct( )

同时查看this问题。