Bu veya neden ihtiyaç duyulan nereye gittiğinizi Oldukça emin değil. Ben (. Alanları ekleme / çıkarma, bir ön uç olurdu, ama bu yüzden kimse bir xml dosyasından bunu neden görmüyorum) db tanımları dinamik formlar, inşa ettik Nevetheless, burada temel fikir:
Bir Kontrolör fonksiyonu
// Import cake's xml class
App::import('Xml');
// your XML file's location
$f = "/path/to/form.xml"; //no need to fopen('file.xml','r'), cake does it
// parse the xml
$xml_array =& new XML($f);
$this->set('form_info', Set::reverse($xml_array));
Bir görünümde:
//Assuming you know how the xml is gonna be setup declare the magic form elements
e($form->create('Model', array('action'=>'action_name')));
foreach($form_info[fields] as $field){
e($form->input($field['name'], array('class'=>field['class'],
'label'=>field['label'], 'type'=>$field['type'])
}
//and close the form:
e($form->end('submit'));
Temel fikir şu, pratikte ben! Boş () kontrolleri bu dizisi seçenekleri sarın, ve xml yapısına bağlı olarak ve alanlar belki de belirli bir biçimlendirmeyi işlemek için bir switch case uygulanması (koşullu ayarlamalar yapmak gerekir alışacağım. ) Bu açıkça tablo varsayar veya model set alanlarından herhangi işlemek için kuruldu.