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

标签 javascript php jquery laravel laravel-5

大家好,这是一个 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/

相关文章:

javascript - 如何连接两个php代码

javascript - 如何从 aspx.cs 调用 javascript 方法

javascript - 如何使用asp.net和jquery上传文件

javascript - 只允许将事件保存到全日历中的特定月份

php - 将面向对象的数据直接编码为关系数据库中的单行是否被认为是错误的形式?

javascript - 如何选择特殊属性(前缀:name ="")?

javascript - 生成 VCard 并通过 Twilio 发送

php - 代码点火器选择为

jQuery 在 $(html_with_inline_styles) 上丢失样式

javascript - Jquery CSS 显示无