2009-07-30 10 views

Respuesta

5

Supongo, pero un alias podría ser el valor asignado cuando tienes una relación entre un modelo y otro y le das al modelo asociado un nombre que no es igual al de la clase.

Por ejemplo:

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

En ese caso, usted está utilizando el modelo que se llama en realidad usuario, pero se está haciendo referencia a ella como 'UserNew'.

+1

$ hasMany = array ('Amigo' => array ('className' => 'Usuario')); habría sido un mejor ejemplo, pero estás en lo correcto. :) Debido a esto, desea utilizar 'alias' siempre que sea posible, ya que nunca puede estar seguro de que' name' es en realidad el objeto que cree que está tratando. – deizel

0

Es una colección de alias de tabla que se usa cuando cake se une. De cake/lib/model/model_php5.php:

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

Si desea cambiar temporalmente la mesa en un modelo, y que está anulando la magia CakePHP DE, cambiar $ this-> alias a lo que usted quiere llamar. $ this-> name parece ser usado en el constructor y debe construir el alias en algún lugar de ese proceso. Cambiar el nombre de $ this-> en un método que quiera sobrescribir, no es suficiente. Vas a tener que cambiar $ this-> alias y realizar el método setSource() como en la de abajo:

function my_override_method(){ 
    $this->setSource('new_db_table_name_here'); 
    $this->alias = "NewTable"; 
} 
0
  • name: El nombre del modelo, por ejemplo Post.
  • alias: El alias del modelo, esto se utiliza para registrar la instancia en el ClassRegistry, por ejemplo ParentThread.

Model::__construct()

Tome un vistazo a this cuestión también.

Cuestiones relacionadas