【问题标题】:Laravel form model data not propagating to blade include fileLaravel 表单模型数据未传播到刀片包含文件
【发布时间】: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


    【解决方案1】:

    如果我将 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) 
    

    然后它就可以正常工作了。

    【讨论】:

      猜你喜欢
      • 2013-11-22
      • 2021-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-02
      • 2020-05-19
      • 2016-06-25
      相关资源
      最近更新 更多