2009-07-30 15 views

risposta

5

Sto indovinando, ma un alias potrebbe essere il valore assegnato quando si ha una relazione tra un modello e un altro e si dà al modello associato un nome diverso da quello della classe.

Ad esempio:

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

In tal caso, si sta utilizzando il modello che in realtà chiama l'utente, ma si sta riferimento come 'UserNew'.

+1

$ hasMany = array ('amico' => array ('className' => 'Utente')); sarebbe un esempio migliore, ma tu hai ragione. :) Per questo motivo, si desidera utilizzare "alias" dove possibile, poiché non si può mai essere sicuri che 'name' sia effettivamente l'oggetto che si ritiene di avere a che fare. – deizel

0

Si tratta di una raccolta di alias di tabella utilizzati quando la torta non un join. Da 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

Se si desidera modificare temporaneamente il tavolo in un modello, e si sta ignorando la magia CakePHP DA, modificare $ this-> alias a ciò che si desidera si chiama. $ This-> nome sembra per essere utilizzato nel costruttore e devono costruire gli alias da qualche parte in questo processo. Cambiare $ questo-> nome in un metodo che vuoi sovrascrivere, non è sufficiente. Dovrete cambiare $ this-> alias ed eseguire il metodo setSource() come in seguito:

function my_override_method(){ 
    $this->setSource('new_db_table_name_here'); 
    $this->alias = "NewTable"; 
} 
0
  • name: Il nome del modello, per esempio Post.
  • alias: l'alias del modello, questo viene utilizzato per la registrazione dell'istanza nello ClassRegistry, ad esempio ParentThread.

Model::__construct()

Date un'occhiata a this domanda anche.

Problemi correlati