在刀片模板中填充js数组
Populating js array in blade template
我正试图根据phpDB查询的结果构建一个用于flot的javascript数据数组。
当我输出数字($lic->Users)时,这很好,但每当我试图输出字符串时,浏览器中就会出现一个完全空白的页面。
我试过:
{{ $lic->CompanyName }}
"<?php echo $lic->CompanyName; ?>"
{{{ $lic->CompanyName }}}
'"'+ <?php echo $lic->CompanyName; ?> +'"'
但当我硬编码它(比如说"CompanyName")时,它构建的条形图(并显示页面)就很好。
var data =
[
@foreach($licdata as $lic)
{
'label': "{{ $lic->CompanyName }}",
'data': [
["{{ $lic->CompanyName }}", {{ $lic->Users }}],
["{{ $lic->CompanyName }}", {{ $lic->Emps }}]
]
},
@endforeach
];
我认为这一定与引用/转义js中的字符串有关,但我不知道是什么,有人知道正确的语法是什么吗?
后端的一个更好的解决方案是在数组中构建数据,无论是关联的还是其他的。
然后返回:
return view( 'view_required',[
'my_var'=> json_encode($array_or_object, JSON_UNESCAPED_SLASHES );
]);
正面:
<script>
var my_var = {!! $my_var !!};
</script>
这是我的错,我最终使用了:"<?php echo $lic->CompanyName ?>"
一旦我纠正了潜在的问题(区分大小写的问题),{{ $lic->CompanyName }}
也能工作。
使用Fiddler(我无法高度推荐),我发现空白的浏览器页面(只是一个白色页面)是由以下内容导致的:
var data =
[
@foreach($licdata as $lic)
{
'label': "<!DOCTYPE html
<html>
<head>
然后加载html(头标签、元标签、css等)
这是我的SQL中的字段名(Companyname)大小写略有不同的结果
MS SQL Server不关心这种情况,而PHP则关心(Companyname vs Companyname)!
一旦php/lavel从结果集中创建对象,字段名就会变成属性,当您访问它们时,它们必须匹配以备不时之需。
始终检查PHP变量/对象的大小写,尤其是当框架正在将它们从记录自动转换为对象(或类似的东西)时。
Easywayhttps://laravel.com/docs/8.x/blade#rendering-json
<script>
var app = {{ Js::from($array) }};
</script>
相关文章:
- spine.js在启动时填充模型实例
- Fabric.js-更改矩形填充
- 在EXT窗体面板中填充EXT JS存储
- 使用kendo js填充网格
- 如何在js中实现树结构类型的表单动态填充
- 如何在d3.js中填充svg圆圈内的图像
- 在Angular JS中,预先填充ng中的下拉值repeat
- 在Sails.js中通过关系填充多对多
- 在Angular JS中填充对象以进行插入
- 在 Node.js 中填充来自猫鼬的对象
- JS使用不同的填充
- 意思是.JS中间件中的猫鼬填充不起作用
- 设置图像以使用纸张.js填充画布
- 面积图的条件填充 D3.js
- 如何以类似于vivus.js的样式设置SVG填充和路径的动画
- 在刀片模板中填充js数组
- 用PHP填充JS代码段
- PHP:使用opendir填充JS幻灯片
- 在特定索引中填充JS数组
- 如何在我的谷歌浏览器扩展程序中将信息从后台传递.js到自动填充.js