2010-02-10 6 views
0

XML 파일에 저장된 필드와 해당 정의를 기반으로 양식을 동적으로 빌드하려고합니다. 내 XML에서는 몇 가지 레이블이있는 1 개의 확인란과 레이블이있는 1 개의 텍스트 필드를 정의했습니다.cakephp에서 다이나믹 폼 만들기

내 XML에있는 내용을 기반으로 양식을 동적으로 빌드하려면 어떻게해야합니까?

어떤 모델을 만들고 싶지 않습니다.

+0

양식을 만드는 데 모델이 필요하지 않습니다. 지금까지 무엇을 시도 했습니까? 그리고 당신을 붙잡고있는 문제는 무엇입니까? – deceze

답변

1

확실하지 않거나 필요한 이유가 무엇인지 잘 모릅니다. 나는 db 정의로부터 동적 폼을 만들었습니다. (필드를 추가/제거하는 것이 프론트 엔드를 가지지 만 왜 XML 파일에서 그렇게 할지를 보지 못합니다.) Nevetheless, 여기에 기본적인 아이디어가 있습니다 :

컨트롤러 기능 뷰에서

// 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)); 

에서! 기본적인 아이디어 그게

//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')); 

, 난에 그 배열 옵션을 감싸는 것이 실제로 빈() 확인하고 XML 구조와 분야에 따라 조건부를 조정해야 할 필요가 있습니다 (아마 swit 이 경우 테이블이나 모델이 설정된 필드를 처리하도록 설정되어 있다고 가정합니다.