gpt4 book ai didi

javascript - 将数据从 Laravel $collection 传递到 jquery 循环

转载 作者:行者123 更新时间:2023-12-01 08:41:44 25 4
gpt4 key购买 nike

大家好,这是一个 Laravel 问题。我正在开发一个目录网站。我正在尝试解决这样的问题:我需要使用作为 JavaScript 变量处理的标记填充开放街道 map ,如下所示:

var mapMarkers = [
{
title: "Paolo",
address: "Troy South End, 264 E. Berkley St, Boston",
lat: 42.3432809,
lng: -71.06297789999996,
img: "assets/images/listings/1.jpg",
category: "Restaurants",
icon: "icon-dinner",
featText: "~ $18-$90",
rating: "4.9",
link: "#"
},
{
title: "Paolo",
address: "5347 N Clark St, Chicago, IL",
lat: 41.9794495,
lng: -87.6679747,
img: "assets/images/listings/2.jpg",
category: "Restaurants",
icon: "icon-dinner",
featText: "Best fried chicken of the town",
rating: "4.2",
link: "#"
},
{
title: "Paolo",
address: "171 E Broadway, New York, NY",
lat: 40.7138292,
lng: -73.98966669999999,
img: "assets/images/listings/5.jpg",
category: "Restaurants",
icon: "icon-dinner",
featText: "Promotional Lunch $45",
rating: "4.1",
link: "#"
}
];

问题是我在 Laravel 集合中有这些数据,我正在寻找将它们传递给 javascript 的最佳方法:

    var mapMarkers = [
{
title: $companies->name,
address: $companies->address,
............
},

有人可以帮助了解解决此问题的最佳实践吗?

最佳答案

与 Eloquent 对象类似,可以通过调用 toJson() 方法将集合序列化为 JSON(Javascript 对象)。因此,$companies->toJson() 应该可以满足您的需求。

在 Blade 模板中,您可以“打印”出公司的 json 格式,如下所示:

<script>
var mapMarkers = {!! $companies->toJson() !!};
</script>

所以,现在当您在 JavaScript 代码中使用 mapMarkers 时,就像在 PHP 中使用 $companies 集合一样。

看起来您的字段也不匹配(示例中的 title: $companies->name)。要使返回的 json 包含 title 而不是 name,您可以映射所有公司,并将 title 字段设置为公司名称。这样,上面的示例将如下所示:

<script>
var mapMarkers = {!! $companies->map(function ($company) { $company->title = $company->name; return $company; })->toJson() !!};
</script>

对集合进行映射会使用映射回调函数返回的值创建一个新集合。

您可以在 Laravel 文档中查看这些方法:toJson()map() .

关于javascript - 将数据从 Laravel $collection 传递到 jquery 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46305110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com