Tamam, CakePHP'nin Model Doğrulama kısmen ben ayrı bir veritabanı şema dosyası kullanan bir proje yarattı ilham. Ben CakePHP'de model dosyası gibi değildi ve db-şema aynı php dosyasında birleştirilir. Onları ayrı olması gibi.
Benim sql güncellemeleri, ekler ve siler tüm ilk bu şema tarafından geçirilir. Ben otomatik olarak bu doğrulama yapmak için () takın () (silme) fonksiyonlarının güncelleştirme yazdı.
Neden? Ben bir ziyaretçinin bir yazı kabul etmek ve onu kontrol etmek zorunda kalmadan benim veritabanına un-kontrol veri gönderebilirsiniz çünkü. Benim şema masum ve o kadar masum değil ihlalleri için filtreler.
İşte bir veritabanı şeması bir örnektir:
<?php
$schemas = array('database_name_hidden'=>array(
'assigned_weeks'=>array(
'id'=>array('id'),
'user_id'=>array('foreign_id','users'),
'week_number'=>array('posint'),
'year'=>array('posint'),
'unit_id'=>array('foreign_id','units'),
'claim_listing'=>array('posint'),
'created'=>array('created'),
'modified'=>array('modified'),
'resort_id'=>array('foreign_id','resorts','required'),
),
'trade_listings'=>array(
'id'=>array('id'),
'assigned_week_id'=>array('foreign_id', 'assigned_weeks','required'),
'listing_assigned_week_id'=>array('foreign_id', 'assigned_weeks'),
'opposite_id'=>array('numeric'),
'listed'=>array('bool'),
'prev_id'=>array('foreign_id','trade_listings'),
'next_id'=>array('foreign_id','trade_listings'),
'listing_email'=>array('email'),
'listing_description'=>array('text'),
'trade_confirmation_number'=>array('text'),
'external_resort_id'=>array('foreign_id','resorts'),
'external_unit_number'=>array('text','size'=>array(1,6)),
'external_start_time'=>array('time_future',),
'external_end_time'=>array('time_future'),
'admin_comment'=>array('text'),
'comment'=>array('text'),
'created'=>array('created'),
'creator'=>array('creator'),
'modified'=>array('modified'),
'modifier'=>array('modifier'),
'resort_id'=>array('foreign_id','resorts','required'),
),
);
?>
Başkasının böyle bir şey yapıyor?