表单模型绑定在部分内部不起作用

时间:2017-08-08 07:46:45

标签: php laravel blade laravelcollective

父级刀片模板:

@extends('layouts.master')

@section('content')

<div class="panel-body">
    @if(count($errors))
        @include('common.errors')
    @endif

    {!! Form::model($entry, ['method' => $method, 'class' => 'form-horizontal', 'route' => [$route]]) !!}


    @section('fields')
        @foreach (['title', 'url', 'content', 'meta_tags', 'meta_description', 'is_active'] as $field)
            @include('entries.fields.' . $field)
        @endforeach
    @show


    <div class="form-group">
        <div class="col-sm-offset-3 col-sm-6">
            @section('submit')
                {!! Form::submit('Добавить', ['class' => 'btn btn-default']) !!}
            @show
        </div>
    </div>

    {!! Form::close() !!}
</div>
@endsection

儿童模板:

  @extends('entries.create')

@section('title')
    Добавить статью / {{ config('site.site_name') }}
@endsection

@section('fields')
    @foreach ([
    'entries.fields.title',
     'entries.fields.url',
      'articles.fields.description',
       'entries.fields.content',
        'entries.fields.meta_description',
         'entries.fields.is_active',
         'articles.fields.enable_comments',
         'articles.fields.show_on_main',
         'articles.fields.rank',
         ] as $field)
        @include($field)
    @endforeach
@endsection

模型绑定适用于父模板,但在子模板中不起作用。

例如,我有enable_comments复选框:

{!! Form::label('enable_comments', 'Включить комментарии', ['class' => 'col-sm-3 control-label']) !!}

     <div class="col-sm-6">
        {!! Form::checkbox('enable_comments', null, null, ['class' => 'checkbox']) !!}
    </div>
</div>

它始终未经检查,而$ entry-&gt; enable_comments === true

我不知道为什么会这样。也许任何人都可以通过代码找到问题。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

问题是表单模型绑定仅在当前模板(包含文件)内部工作,但不填充子temlates中的值。所以唯一的解决方案是在子模板中再次编写表单start({!! Form :: model(...)