更新:
我知道如何解析XML,但不确定在架构中的具体位置,请参见下面定义的问题。
欢迎任何建议!
在进入Laravel时,我尝试从XML文件构建表单。
问题:
- 如何将XML中的数据传递到视图中?
- 在哪里构建该表单-在重复性方面,我更喜欢创建一次表单,并在创建、编辑和查看时使用它
- 验证-我希望尽可能多地重用它
XML:foods_form.xml(简化):
<form>
<field id="1" name="cheese" label="favorite cheese?" type="radio" req="1" filter="int">
<option id="1" value="1">Camembert</option>
<option id="2" value="3">Gouda</option>
</field>
<field id="2" name="beer" label="favorite beer?" type="text" req="1" filter="str" />
</form>
视图:app/views/create.blade.php:
@extends('layout')
@section('content')
<form action="{{ action('FormsController@handleCreate') }}" method="post" role="form">
@foreach ($fields as $field)
<label for="{{ $field->name }}">{{ $field->label }}</label>
@if ($field->type == 'text')
<input type="text" name="{{ $field->name }}" />
@else
@foreach ($field->option as $option)
<input type="radio" name="{{ $field->name }}" value="{{ $option }}" />
@endforeach
@endif
@endforeach
<input type="submit" value="Create" />
<a href="{{ action('FormsController@index') }}">Cancel</a>
</form>
@stop
控制器: app/controllers/FormsController.php:
class TestsController extends BaseController {
public function index() {
// return some view
}
public function create() {
return View::make('create');
}
public function handleCreate() {
// validation according to XML
// save to database if valid || return to form if not valid
}
}
$xml
为 HTML 表单,并通过构造函数将其注入到您的控制器中?然后您的控制器可以执行以下操作:$xml = new SimpleXMLElement('../path/to/forms.xml'); $html = $this->xml_form_parser->parseToHtml($xml);
- patricksayshi