htmlspecialchars()期望参数1是给定的字符串数组

时间:2018-06-02 16:50:00

标签: html laravel laravel-5 laravel-5.4

我有一个输入字段,我从控制器传递一个数组作为隐藏输入,但它给出了这个给定数组的错误。

我的观点代码是

    <input type="hidden" name="DiseaseDiagnosed[]" value="{{$DiseaseDiagnosed}}">

将值传递给视图的控制器代码是

 return view('/doctorPanel/diagnoseDisease', ['chart' => $chart, 'patient' => $patient, 'symptomsStated' => $symptomsStated, 'DiseaseDiagnosed' => $DiseaseDiagnosed]);

请告诉我为什么会收到此错误

3 个答案:

答案 0 :(得分:2)

<input type="hidden" name="DiseaseDiagnosed[]" value="{!! jsond_encode($DiseaseDiagnosed) !!}">

实际上,您的输入是DiseaseDiagnosed是一个返回查看的数组。

所以你必须使用{{ json_decode($DiseaseDiagnosed) }}

您也可以尝试

@foreach($DiseaseDiagnosed as $disease)

  <input type="hidden" name="DiseaseDiagnosed[]" value="{{ $disease }}">

@endforeach

答案 1 :(得分:1)

刀片模板引擎正在产生此错误。你无法使用{{ }}打印这样的数组。传递此值时,您可以使用'DiseaseDiagnosed'=>json_encode($DiseaseDiagnosed])对其进行编码,然后您可以使用该语法。之后,当您想要使用此值时,请不要忘记使用json_decode()

对其进行解码

答案 2 :(得分:0)

要创建包含输入的数组,您需要在数组中为 ach值提供 1输入。当它只接受字符串时,你在值上附加一个数组,这就是为什么它会警告你在期望一个字符串时给出了一个数组。

正如@Adnan建议您可以使用以下方法解决此问题:

@foreach($DiseaseDiagnosed as $disease)

   <input type="hidden" name="DiseaseDiagnosed[]" value="{{ $disease }}">

@endforeach

然后在您的控制器中,您将收到数组DiseaseDiagnosed以及您插入的所有值,例如:您将收到同一阵列中的所有值 - &gt;

dd($request->DiseaseDiagnosed);
// You will see this is an array with all the values