Ben bir Dosyalar Modeli var ve Çoklu (şu anda 3) farklı diğer modelleri tüm Dosyalar Model saklanan dosyaları olabilir (Madde, İş, Olay).
Sorun i CLI-Aracı (. / Doktrin build-all-reload) üzerinden tablo oluşturmak zaman, ben bu hata mesajı almak olduğunu:
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot
add or update a child row: a foreign key constraint fails
(`my_database/articles`, CONSTRAINT `articles_id_files_target_id`
FOREIGN KEY (`id`) REFERENCES `files` (`target_id`))
Dosya (yok ilişkiler tanımlanan bu Modeli tanımlandığı) olarak tanımlanır:
columns:
id:
primary: true
autoincrement: true
type: integer(4)
target_id: integer(4)
filename: string(255)
[...]
Tüm 4 Modelleri bu ilişki tanımı var:
relations:
Files:
type: many
class: File
local: id
foreign: target_id
Bu Doktrini (BaseFile.php) üretir Php-Code:
public function setUp()
{
parent::setUp();
$this->hasOne('Publication', array(
'local' => 'target_id',
'foreign' => 'id'));
$this->hasOne('Event', array(
'local' => 'target_id',
'foreign' => 'id'));
$this->hasOne('Article', array(
'local' => 'target_id',
'foreign' => 'id'));
$this->hasOne('Job', array(
'local' => 'target_id',
'foreign' => 'id'));
}
Anlıyorum why Bu durumda (Kısıtlayıcı çoklu tablolar için kurulum olamaz), ama mutltiple dosya tabloları veya bir dernek tablo olmadan bu sorunu nasıl çözebileceklerini hiçbir fikrim yok.
O Dosya modelinde ilişkileri oluşturmak gerektiğini Doktrini anlamanın bir yolu var mı?
Herhangi bir iyi bir fikir?