【发布时间】:2014-04-26 01:48:28
【问题描述】:
我有许多表格要为其生成表格。为了方便起见,我希望他们尽可能多地共享代码,因此我计划使用以下刀片结构:
/views/forms/template.blade.php
/views/forms/table1/edit.blade.php
/views/forms/table1/create.blade.php
/views/forms/table1/partials/_fields.blade.php
/views/forms/table2/edit.blade.php
/views/forms/table2/create.blade.php
/views/forms/table2/partials/_fields.blade.php
使用这些视图的控制器执行以下操作:
return View::make('forms.'.$viewForm.'.edit')->with('data', $data)
->with('viewForm', $viewForm)
$viewForm 在我们的示例中将包含“table1”或“table2”。 $data 将填充当前记录或空记录。
如果我创建以下文件:
/views/forms/table1/edit.blade.php
{{ dd($data); }}
然后我得到正确的输出,即数据的相当混乱的表示。
如果我将其替换为以下代码:
@extends('forms.template')
@section('formcontent')
<div class='formfield'>
{{ Form::label('table1_field1','Code') }}
{{ Form::input('text','table1_field1') }}
{{ $errors->first('table1_field1') }}
</div>
@stop
并像这样创建模板文件:
/views/forms/template.blade.php
<h1>Edit</h1>
{{ Form::model($data,['method'=>'PATCH', 'url'=>route('table').'/'.$viewForm]) }}
@yield("formcontent")
<div class='formfield'>
{{ Form::submit('Edit',['class'=>'button']) }}
</div>
{{ Form::close() }}
然后我得到一个显示的空字段,但没有数据。但是,如果我移动以下内容
<div class='formfield'>
{{ Form::label('table1_field1','Code') }}
{{ Form::input('text','table1_field1') }}
{{ $errors->first('table1_field1') }}
</div>
从 /table1/edit.blade.php 到 template.blade.php,然后它包含数据。
我可以通过将 {{ form }} 移动到 edit.blade.php 来完成这项工作,但这正是我想要避免的。有什么方法可以在 template.blade.php 中创建我想要的表单吗?
【问题讨论】:
标签: forms laravel laravel-4 blade