2014-03-19 69 views
0

我有許多我想要的產品窗體的表格。爲了方便起見,我希望他們能夠共享盡可能多的代碼可能,所以我打算使用後的葉片結構:Laravel窗體模型數據不傳播到刀片包含文件

/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'。 $數據將填充當前記錄或空記錄。

如果我創建以下文件:

/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() }} 

然後我得到一個顯示空場,但沒有數據。但是,如果我移動從/table1/edit.blade.php以下

<div class='formfield'> 
{{ Form::label('table1_field1','Code') }} 
{{ Form::input('text','table1_field1') }} 
{{ $errors->first('table1_field1') }} 
</div> 

到template.blade.php,那麼它包含的數據。

我可以通過將{{form}}移動到edit.blade.php來獲得這個工作,但這正是我想要避免的。我有什麼方法可以在template.blade.php中創建表單嗎?

回答

0

如果我用下面的代碼替換edit.blade.php:

<div class='formfield'> 
{{ Form::label('table1_field1','Code') }} 
{{ Form::input('text','table1_field1') }} 
{{ $errors->first('table1_field1') }} 
</div> 

而且模板文件更改爲:

/views/forms/template.blade.php 

<h1>Edit</h1> 
{{ Form::model($data,['method'=>'PATCH', 'url'=>route('table').'/'.$viewForm]) }} 

@include("/views/forms/".$viewForm."/edit") 

<div class='formfield'> 
{{ Form::submit('Edit',['class'=>'button']) }} 
</div> 
{{ Form::close() }} 

最後,路線更改爲:

return View::make('forms.template')->with('data', $data) 
            ->with('viewForm', $viewForm) 

然後它工作正常。