CakePHP Model-> takma ve model-> isim arasındaki fark nedir?

4 Cevap php

alias ve name kek modellerinde hem de özelliklerdir. Onlar benzer gibi görünüyor, ancak her ikisi de mevcut olduğundan, bir fark olmalı. Bu nedir?

4 Cevap

Ben tahmin ediyorum, ama sen bir model ve başka arasında bir ilişki var ve ilişkili modeli sınıfa eşit olmayan bir isim vermek zaman bir takma atanan değer olabilir.

Örneğin:

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

Bu durumda, aslında Kullanıcı deniyor modelini kullanıyorsanız, ancak 'UserNew' olarak referans ediyoruz.

Bu pasta katılmak ne zaman kullanılan tablo takma bir koleksiyon bulunuyor. Dan cake/lib/model/model_php5.php:

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

Eğer geçici bir modelde tabloyu değiştirmek istiyorsanız ve DAN CakePHP sihirli geçersiz ediyorsanız, bunu denir istediğiniz ne $ this-> ad değiştirmek. $ This-> name kurucusuna kullanılacak gibi görünüyor ve bir yerde bu süreçte diğer adı oluşturmak gerekir. Eğer geçersiz kılmak istediğiniz bir yöntemle $ this-> adını değiştirerek, yeterli değildir. Sen $ this-> ad değiştirmek ve yöntem setSource gerçekleştirmek zorunda () aşağıdaki gibi olacak:

function my_override_method(){
  $this->setSource('new_db_table_name_here');
  $this->alias = "NewTable";
}
  • name: modelin adı, örneğin, Post.
  • alias, modelin diğer adı, bu örnek için, ClassRegistry in örneği kaydetmek için kullanılır ParentThread.

Model::__construct( )

this soruya da bir göz atın.