数组作为Laravel形式的输入(提交功能不起作用)

时间:2019-08-28 13:53:03

标签: php jquery laravel

我正在Laravel中构建一个接收动态输入的表单。用户可以在输入文本中添加链接,但是可以根据需要选择添加更多链接。该功能是使用jquery开发的。问题是,当我尝试保存表单(提交)时,出现此错误消息。

  

helpers.php第531行中的ErrorException:
  htmlentities()期望参数1为字符串,为给定数组(视图:C:\ Users \ jkabbas \ Documents \ GitProects \ rastro \ src \ resources \ views \ arquiteturas \ novo.blade.php)

这是laravel页面中的代码摘录,这引起了问题。当我从[]中删除方括号name="txt-link[]"时,错误消息消失了,但是我需要使用数组,因为我正在处理多个输入。

<td>
  <input type="text" placeholder="Digite o link da arquitetura" class="form-control" id="txt-link" name="txt-link[]" value="{{old('txt-link')}}" style="width: 730px;">
  @if($errors->has('txt-link'))
    @foreach ($errors->get('txt-link') as $message)
      <span class="help-block" style="margin-top:5px; margin-bottom:-5px; color:rgb(170, 56, 56)">
        <b>{{  $message }}</b>
      </span>
    @endforeach  
  @endif  
</td>

后端代码

function store(Request $request) {
    $this->validate($request, [
        'combo_produto'=>['not_in:0'],
        'combo_projeto'=>['not_in:0'],
        'txt-link[]'=>['required'],
    ]);
    $save_arquitetura = Arquitetura::create([
        'produto_id' =>$request['combo_produto'],
        'projeto_id' =>$request['combo_projeto'],
    ]);
    return redirect('/arquiteturas')->with('msg_success', 'Dados salvos com sucesso!'); 
}

1 个答案:

答案 0 :(得分:2)

这是由value="{{old('txt-link')}}"引起的。当您上传多个文件并返回所有旧输入时,您的后端发生了某种错误,但您value="{{old('txt-link')}}在这里不进行处理。这就是 htmlentities()期望参数1为字符串,给出数组的原因