Doctrine2'yi öğreniyorum ve kurucuyu otomatik olarak nasıl arayacağımı sorun yaşıyorum. Örneğin benim varlık içinde ben
/**
* @Entity
*/
class User{
....
public function __construct() {
exit('in');
}
}
var ve nesne bu şekilde olsun:
$userObj = $em->find('User', 1);
ben veritabanından o nesneyi almak ancak yapıcı asla denir. ben
gibi bir kullanıcı oluşturmak için kod yeni bir nesne oluşturduğunuzda, bu tabii çalışır $this->comments = new ArrayCollection();
gibi doktrin belgelerinden örnek kod koymak için bile doğrulama kuralları gibi, yapıcı içinde bazı ortak şeyler koymak veya istediğiniz
$user = new User(); //now constructor works just fine
Şimdi, varlığı almanın "doğru" yolu nedir? $ User0bj -> __ construct() ile $ em-> find() kullanıcısını her defasında el ile yapıcıdan çağırmam gerektiğinden şüpheliyim. ? Bu daha sonra berbat olur ... Ya da başka bir şey kullanmalıyım -> find() tek bir öğeyi doğru şekilde almak için? @PrePersist'i kullanabileceğimi biliyorum ve aslında doğrulama kontrolleri yapmak için kullanıyorum. Sanırım muhtemelen burada bir şey eksik ya da kurucuyu fakir bir şekilde kullanmaya çalışıyorum. Herhangi bir açıklama ve kılavuz için teşekkürler!
Şimdiye kadar, hem yapıcıda hem de @PostLoad olayında çağrılan ayrı setUp() yöntemini kullanıyorum, nesne yeni Obj() ile oluşturulduğunda nesne içinde ayarlanması gereken şeyi ayarlar; ve objenin veritabanından alındığı zaman çağrılır. Benzer ikilemleri olan birine yardımcı olabilir. – Dalibor