CakePHP: Bazı modeli yöntemlerinden önce kod yürütün

1 Cevap php

Şu anda bütün başından (modelin üst sınıf) de aynı nesneyi alıp benim modeli çeşitli yöntemler var. Ben bunu otomatik ve önceden bazı kod çalıştırmak istiyorum.

"Eğer yöntemler getParentId (), getParentTable () ve mayChange () çağırmadan önce) (fetchParent yürütmek" Ben söylemek istiyorum.

Ebeveyn zamanında değiştirmek gibi, başlatma bu ebeveyn-nesne ayarlamak yeterli, ya da bir sınıf değişkeni olarak değil olmuyor.

1 Cevap

"Bazı yöntemleri" anlam olarak, Cake yerli geri aramaları kullanmak mümkün olabilir. Daha olanların üzerine http://book.cakephp.org/view/76/Callback-Methods. Bu özel yöntemleri için ortak işlevsellik girmeleri istiyorum ki, olsa, daha olası görünüyor. Bu durum buysa, o zaman ne yaptığım özel geri çağrıları oluşturmaktır. Bunu yapmak için, istenen model / s özel bir geri arama oluşturun. Sonra, içinde AppModel::your_method(), bu yöntem adının varlığını test ve, eğer varsa, çalıştırmak.

Burada geçmişte yazdığımız bazı örnek kod:

# In AppModel::your_method()
if ( method_exists ( $model, 'your_custom_callback' ) ) {
  $model->your_custom_callback ( $model );
}

# In YourModel
public function your_custom_callback ( $model ) {
  /** Your custom code */
}

Bu tam sizin ihtiyaçlarınızı karşılayacak olup olmadığını bilmiyorum, ama belki de en azından bir başlangıç ​​noktası sağlayacaktır yüzden fazla detay vermedi.