alias
和name
都是蛋糕模型中的属性。它们似乎相似,但由于它们都存在,因此必然存在差异。它是什么?
答案 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
。同时查看this问题。