【发布时间】:2014-04-23 00:36:10
【问题描述】:
alias 和 name 都是蛋糕模型中的属性。它们看起来很相似,但既然都存在,那么肯定是有区别的。这是什么?
【问题讨论】:
alias 和 name 都是蛋糕模型中的属性。它们看起来很相似,但既然都存在,那么肯定是有区别的。这是什么?
【问题讨论】:
我猜,但是当您在模型和另一个模型之间建立关系并且您给关联模型的名称不等于类的名称时,别名可能是分配的值。
例如:
$hasMany = array('UserNew' => array('className' => 'User'));
在这种情况下,您使用的是实际称为 User 的模型,但您将其引用为“UserNew”。
【讨论】:
alias,因为您永远无法确定name 实际上是您认为正在处理的对象。
这是 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();
【讨论】:
如果您想临时更改模型中的表,并且要覆盖 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";
}
【讨论】:
name:模型名称,例如Post。alias:模型的别名,用于在ClassRegistry中注册实例,例如ParentThread。看看this的问题也。
【讨论】: