Eğer uygun bir katılmak yapamaz, çünkü bu mümkün değildir. Bu durumda katılmak parent_entity ve child_entity (her satır yani farklı bir tablo katılmak gerekebilir) değere bağlıdır. (O varlık türüne bağımlı olduğundan yani) Ayrıca, nasıl doktrin hangi kayıt türü hidrat bilecek.
Eğer (bu garip olacak olsa da) sizin katıldı üzerindeki WITH yan tümcesi kullanarak bu off gibi bir şey çekmek mümkün olabilir. Örneğin, haber model Setup () yönteminde bunu yapabilirsiniz:
$this->hasMany('Links as NewsVideoLinks', array('local' => 'id', 'foreign' => 'parent_id'));
Ve Linkler modelinin kurulumunda:
$this->hasMany('Videos as videos', array('local' => 'child_id', 'foreign' => 'id'));
Sen Linkler modelinde katılır tüm kombinasyonlarını tanımlamak gerekir. Demek istediğim, bunu da child_id ve parent_id ikisini de kullanarak birçok haber ve albüm olduğunu söylemek gerekir.
Ve sonra sorguda, gibi bir şey yapmanız gerekir:
$query = Doctrine_Query::create();
$query->from('News n');
$query->innerJoin("n.NewsVideoLinks as links WITH parent_entity = 'news'");
$query->innerJoin("links.Videos as vids WITH child_entity = 'videos'");
$results = $query->execute();
Gördüğünüz gibi bu çok hantal. Ben çok her ilişki için tabloları birleştirmek oluşturmak öneriyoruz. Hala tablo katılmak her dışarı katılarak aradığınızı olacaktı.