Bir Dosyalar Modeli var aynı kimliği alanını başvuran Çoklu modelleri ve çoklu (şu anda 3) Dosyalar Modeli depolanan tüm dosyaları olabilir farklı diğer Modelleri (Madde, Meslek, Olay).Doktrin - başka bir modelde
sorun i (./doctrine birikimi her reload) CLI-Aracı ile tablolar oluştururken, ben bu hata mesajını elde ediyoruz:
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 No ilişkiler (olarak tanımlanır
columns:
id:
primary: true
autoincrement: true
type: integer(4)
target_id: integer(4)
filename: string(255)
[...]
4- Modeller
bu ilişki-tanıma sahiptir: tanımlanan bu model) 'de tarifrelations:
Files:
type: many
class: File
local: id
foreign: target_id
T
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'));
}
Ben bunun neden böyle (Kısıtlamalar birden tablolar için kurulum olamaz) anlıyorum, ama ben bu nasıl çözebileceklerini hiçbir fikrim yok: onun Doktrini oluşturduğu Php-Kodu (BaseFile.php) 'dir mutltiple dosya tabloları veya bir ilişkilendirme tablosu olmadan sorun.
o Dosya modelinde ilişkilerini yaratmaması gerektiğine de Doctrine anlamanın bir yolu var mı?
Her iyi fikir?
columns:
id: { type: integer(4), notnull: true, primary: true, autoincrement: true }
target_id: { type: integer(4), notnull: true }
model: { type: string, notnull: true }
Dosyalar modeli kimliği ve bağlantılı giriş modelini bilmesi gerekir: Sen gibi bir şey deneyebilirsiniz
Files:
type: many
class: File
local: target_id
foreign: id
Files2:
type: many
class: File
local: id
foreign: id
Neden ilişkilendirme tablosu kullanarak çözmediğinizi sorabilir miyim? Aynı dosyayı farklı içerik türlerine birden çok kez yüklemeden bağlamanızı sağlayacağından çok esnek ve verimli bir çözümdür. Mevcut modelinizle bu imkansız ... – wimvds
Bunu gerçekten bir ilişki tablosuyla çözebilir miyim? "tip" alanı hakkında doktrin hakkında nasıl bilgi verebilirim? – smoove
Bunu doktrinle nasıl gerçekleştireceğimi bilmiyorum, ancak problem başka bir tabloya ** başka bir tablo oluşturulduğundan ** önce başka bir masaya bağımlı bir tablo ekleyerek doktrin ile yatıyor. –