Laravel - 未从嵌套输入中接收字段

Laravel - Not receiving fields from nested inputs

我正在使用 Laravel 5.3 和相同的 blade 查看 create/edit a casa(葡萄牙语的房子)和 contato(葡萄牙语的联系人)。

我有一个表格要提交到 2 tables(contatos casas)。它工作正常,直到我更改了前 6 个字段的 name (table contatos)。

是:

{!! Form::text('nome_contato') !!}

现在是:

{!! Form::text('contato[nome_contato]') !!}

我不得不这样做,因为第一个没有填充输入来编辑它。但现在它告诉我这些字段是空的,即使它们不是。

CasaRequest.php↓↓

public function rules()
    {
        return [
            'nome_contato'  => 'required|max:255',
            'telefone'      => 'required|numeric|digits_between:10,11',
            'celular1'      => 'required|numeric|digits_between:10,11',
            'celular2'      => 'numeric|digits_between:10,11',
            'celular3'      => 'numeric|digits_between:10,11',
            'skype'         => 'max:255',
            'nome'          => 'required|max:100',
            'descricao'     => 'required|min:50|max:2000',
            'endereco'      => 'required|max:255',
            'numero'        => 'numeric|min:0',
            'bairro'        => 'required|max:100',
             (etc........)
            ];
}

creteedit.blade.php↓↓

    @if(isset($casa))
        {!! Form::model($casa, ['route' => ['casas.update', $casa->id], 'method' => 'put', 'class' => 'register']) !!}      
    @else
        {!! Form::open(['route' => 'casas.store', 'class' => 'register']) !!}
    @endif

    <!-- First step Contatos -->
    <div class="row">   
        <div class="form-group row">
            <div class="col l2 offset-l1">
                Nome para contato
            </div>          
            <div class="col l8">
                {!! Form::text('contato[nome_contato]') !!}             
                <span class="red-text text-lighten-1">{!!$errors->first('nome_contato')!!}</span>
                </div>
            </div>

            <div class="form-group row">
                <div class="col l2 offset-l1">
                    Telefone
                <div class="col l8">
                    {!! Form::text('contato[telefone]') !!}             
                    <span class="red-text text-lighten-1">{!!$errors->first('telefone')!!}</span>
                </div>
            </div>

            <div class="form-group row">
                <div class="col l2 offset-l1">
                    Celular 1           
                <div class="col l8">
                    {!! Form::text('contato[celular1]') !!}             
                    <span class="red-text text-lighten-1">{!!$errors->first('celular1')!!}</span>
                </div>
            </div>

            <div class="form-group row">
                <div class="col l2 offset-l1">
                    Celular 2
                </div>          
                <div class="col l8">
                    {!! Form::text('contato[celular2]') !!}             
                    <span class="red-text text-lighten-1">{!!$errors->first('celular2')!!}</span>
                </div>

        <!-- Here comes more fields from the table `contatos` -->


<!-- Second step Casas -->

<div class="form-group row">
            <div class="col l2 offset-l1">
                    <label class="right">Nome<span class="red-text">*</span></label>
                </div>          
                <div class="col l8">
                    {!! Form::text('nome') !!}              
                    <span class="red-text text-lighten-1">{!!$errors->first('nome')!!}</span>
                </div>
            </div>

            <div class="form-group row">
                <div class="col l2 offset-l1">
                    <label class="right">Descrição<span class="red-text">*</span></label>
                </div>          
                <div class="col l8">
                    {!! Form::textarea('descricao') !!}             
                    <span class="red-text text-lighten-1">{!!$errors->first('descricao')!!}</span>
                </div>
            </div>

            <div class="form-group row">
                <div class="col l2 offset-l1">
                    <label class="right">Endereço <span class="red-text">*</span></label>
                </div>          
                <div class="col l5">
                    {!! Form::text('endereco') !!}              
                    <span class="red-text text-lighten-1">{!!$errors->first('endereco')!!}</span>
                </div>
                <div class="col l1 offset-l1 ">
                    <label class="right">Número</label>
                </div>          
                <div class="col l1">
                    {!! Form::text('numero') !!}                
                    <span class="red-text text-lighten-1">{!!$errors->first('numero')!!}</span>
                </div>
            </div>

第二步的字段有效,只有第一步无效,因为它们 namecontato[field_name]

这是一个嵌套输入,你必须使用点。

例如:

$request->input('contato.nome_contato')

规则相同:

'contato.nome_contato' => 'required|max:255',