2017-07-04 29 views
0

我使用Laravel 5.3和相同的刀片视图创建/编辑casa(葡萄牙语房屋)和contato(葡萄牙语联系)。Laravel - 不接收来自嵌套输入的字段

我有一个表格提交到2个表格(contatoscasas)。它工作正常,直到我改变了前6个字段中的name(表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]

回答

3

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

如:

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

的规则同样的事情:

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

太感谢你了,我不知道。只是想补充一点,我已经改变了显示错误的那一行'{!! $ errors-> first('contato.nome_contato')!!} – GabrielFiel

+0

不客气;) – OuailB

+0

有没有办法请求所有输入不需要指定字段?像:'$ dataForm = $ request-> all();'但我也需要嵌套的输入。谢谢 – GabrielFiel