在项目 laravel 的 javascript 函数中从控制器接收数组时出错
error when receiving an array from the controller in a javascript function in project laravel
我得到一个错误 “htmlspecialchars () expects parameter 1 to be string, array given”。我正在将一个数组从控制器传递到视图并尝试在 javascript 函数中收集它,非常感谢您的帮助。
代码控制器
$etis = EtiquetaPresupuesto::where('presupuestos_id', $id)->get();
$idEtiquetas=[];
foreach ($etis as $eti) {
array_push($idEtiquetas, $eti->etiquetas_id);
}
return view('presupuestos_contabilidad/info-presupuestos', [
'etiquetas_id' => $idEtiquetas,
]);
代码 javascript 可见
function etiquetas_sesion(){
var array_etiquetas = {{$etiquetas_id}};
}
您必须使用 json_encode()
函数来获取数组或对象。
Also you can use @json()
blade selector
例如:
function etiquetas_sesion(){
var array_etiquetas = @json($etiquetas_id);
}
function etiquetas_sesion(){
var array_etiquetas = {!! json_encode($etiquetas_id) !!}
}
$etiquetas_id
在你的代码中是一个数组,但你试图通过 {{ }}
将它打印为字符串,它通过 htmlspecialchars()
.
转义它
如果您希望数组保留在 JavaScript 中(作为 JavaScript 数组),请使用 json_encode()
:
var array_etiquetas = {!! json_encode($etiquetas_id) !!};
我得到一个错误 “htmlspecialchars () expects parameter 1 to be string, array given”。我正在将一个数组从控制器传递到视图并尝试在 javascript 函数中收集它,非常感谢您的帮助。
代码控制器
$etis = EtiquetaPresupuesto::where('presupuestos_id', $id)->get();
$idEtiquetas=[];
foreach ($etis as $eti) {
array_push($idEtiquetas, $eti->etiquetas_id);
}
return view('presupuestos_contabilidad/info-presupuestos', [
'etiquetas_id' => $idEtiquetas,
]);
代码 javascript 可见
function etiquetas_sesion(){
var array_etiquetas = {{$etiquetas_id}};
}
您必须使用 json_encode()
函数来获取数组或对象。
Also you can use
@json()
blade selector
例如:
function etiquetas_sesion(){
var array_etiquetas = @json($etiquetas_id);
}
function etiquetas_sesion(){
var array_etiquetas = {!! json_encode($etiquetas_id) !!}
}
$etiquetas_id
在你的代码中是一个数组,但你试图通过 {{ }}
将它打印为字符串,它通过 htmlspecialchars()
.
如果您希望数组保留在 JavaScript 中(作为 JavaScript 数组),请使用 json_encode()
:
var array_etiquetas = {!! json_encode($etiquetas_id) !!};