Laravel - 如何将变量添加到输入名称

Laravel - How to add variable to input name

我正在尝试向输入名称添加一个变量,如下所示:

{!! Form::text('material[{{$num}}]', old('material[{{$num}}]'), ['class' => 'form-control', 'placeholder'=> '']) !!}

但是在 html 它 returns 我是这样的:

<input class="form-control" placeholder="" name="material[<?php echo e($num); ?>]" type="text">

而且我不明白这是什么问题。

我该如何解决?

谢谢

你不能嵌套 {{ }}

如果你想得到这个:

name="material[1]" 

正确的语法是:

{!! Form::text('material[' . $num . ']', old('material[' . $num . ']'), ['class' => 'form-control', 'placeholder'=> '']) !!}

试试这个:

 {!! Form::text('material['.$num.']', old('material['.$num.']'), ['class' => 'form-control', 'placeholder'=> '']) !!}

当您使用 {{ }}{!! !!} 时,意味着您已经在 php 范围内,您可以输入任何 php 代码

如果material是一个数组那么它应该像

{!! Form::text('material[$num]', old('material[$num]'), ['class' => 'form-control', 'placeholder'=> '']) !!}

您不能在 {!! !!}

中使用 {{}}

您使用

{!! Form::text('material[' . $num . ']', old('material[' . $num . ']'), ['class' => 'form-control', 'placeholder'=> '']) !!}

或者

{!! Form::text('material[$num]', old('material[$num]'), ['class' => 'form-control', 'placeholder'=> '']) !!}