CakePHP'de dinamik form inşa

1 Cevap php

Ben dinamik olarak bir XML dosyasında saklanır alan ve kendi tanımlarına dayalı bir form oluşturmak için çalışıyorum. Benim xml, bazı etiket ile bazı etiket ve 1 textfield ile 1 kutusunu tanımladınız.

Dinamik olarak nasıl benim xml var ne dayalı bir form oluşturmak yok.

Ben herhangi bir model oluşturmak istemiyorum.

1 Cevap

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.