htmlspecialchars()期望参数1为字符串,给定Laravel 5.6的数组

时间:2018-08-01 05:35:17

标签: laravel laravel-5.6

已经进行了研究,但我找不到适合我问题的正确答案。

错误:htmlspecialchars()期望参数1为字符串,数组为给定(create.blade)

<div class="an-single-component with-shadow">
      <div class="an-component-body">

        @foreach($setting as $setfield)
          @if($setfield->type === 'smallInteger')
            <div class"form-group" style="padding:20px">
              <div style="display:inline-block">
                  <P><input type="hidden" name="set_id[{{$setfield->code}}]" value="{{$setfield->id}}">{{$setfield->display_name}}</P>
              </div>
              <div class="an-switch-box-wrapper pull-right" style="display:inline-block">
                  <div class="lcs_wrap">{{ Form::checkbox($setfield->code, '1', true) }}
                      <div class="lcs_switch lcs_checkbox_switch lcs_on">
                          <div class="lcs_cursor"></div>
                          <div class="lcs_label lcs_label_on">ON</div>
                          <div class="lcs_label lcs_label_off">OFF</div>

                      </div>
                  </div>
              </div>
          </div>

          @elseif($setfield->type === 'string')
            <div class"form-group" style="padding:20px">
              <div style="display:inline-block">
                  <P><input type="hidden" name="set_id[{{$setfield->code}}]" value="{{$setfield->id}}">{{$setfield->display_name}}</P>
              </div>
              <div class="an-switch-box-wrapper pull-right" style="display:inline-block">
              {!!Form::text($setfield->code,old($setfield->code),['class'=>'form-control','style'=>'width: 100%'])!!}
              </div>
          </div>

          @elseif($setfield->type === 'integer')
            <div class"form-group" style="padding:20px">
              <div style="display:inline-block">
                  <P><input type="hidden" name="set_id[{{$setfield->code}}]" value="{{$setfield->id}}">{{$setfield->display_name}}</P>
              </div>
              <div class="an-switch-box-wrapper pull-right" style="display:inline-block">
              {!!Form::text($setfield->code,old($setfield->code),['class'=>'form-control','style'=>'width: 100%'])!!}
              </div>
          </div>

          @elseif($setfield->type === 'date')
            <div class"form-group" style="padding:20px">
              <div style="display:inline-block">
                  <P><input type="hidden" name="set_id[{{$setfield->code}}]" value="{{$setfield->id}}">{{$setfield->display_name}}</P>
              </div>
              <div class="an-switch-box-wrapper pull-right" style="display:inline-block">
              {!!Form::date($setfield->code,old($setfield->code),['class'=>'form-control','style'=>'width: 100%'])!!}
              </div>
          </div>

          @endif
        @endforeach

      </div>
    </div> <!-- end .AN-SINGLE-COMPONENT -->

当我执行dd($request->all())时,我得到了所有数据,但是当我单击“提交”时,就会发生错误。

3 个答案:

答案 0 :(得分:1)

这不是Laravel特定的错误:

在php文档中,如果您看到

htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);

此函数接受2个参数,第一个是字符串,第二个是可选参数。

如果您要转义一个字符串数组,请使用 foreach 并转义每个字符串

答案 1 :(得分:0)

其中一个刀片{{}}中的任何位置都有阵列,请检查它们。

阅读:https://laravel.com/docs/5.6/blade#displaying-data

答案 2 :(得分:0)

您正在{{}}内某处使用Array。 您只能在{{}}内使用String。

使用{{dd(variable_name)}}来检查变量,然后再在{{}}中使用它。 如果它是一个数组,则首先将其转换为String(使用implode())。

分解文档:http://php.net/manual/en/function.implode.php

刀片文档:https://laravel.com/docs/5.6/blade#displaying-data