Laravel 雄辩到 json

Posted

技术标签:

【中文标题】Laravel 雄辩到 json【英文标题】:Laravel eloquent to json 【发布时间】:2016-05-08 09:46:40 【问题描述】:

我在 Laravel 中使用 vue.js。这是我的表结构:

Article  
id
name
description

Location 
id
place


article_location (pivot table)
--fields--
id
article_id (foreign key)
location_id (foreign key)

我想把它转换成 json:

article.place
article.description
location.place

用 eloquent 做这件事的正确方法是什么?

<div class="container">
        <div class="container">
            <data list=" $location->artikel()->toJson() //<-something like this? "></data>
        </div>

        <template id="ln-data">
            <ul>
                <li v-for="value in list">
                    @ value.name 
                </li>
            </ul>
        </template>

        <script>
        Vue.config.debug = true;

        Vue.component('data', 
            template: '#ln-data',
            props:['list'],

            created() 
                this.list = JSON.parse(this.list);
            
        )

        new Vue(
            el: 'body'
        );
        </script>

我的控制器:

$location = location::all(); return view('locationproducts')->with('location',$location);

定位模型:

public function article()

    return $this->belongsToMany('App\article','article_location');

错误:

Macroable.php 第 81 行中的 ErrorException:方法文章没有 存在。 (看法: /home/vagrant/Code/project/resources/views/locationproducts.blade.php)

【问题讨论】:

所以当我简单地将 $a_collection 放入模板时,我得到了最大函数嵌套错误:100 达到。所以我只是在控制器中调用了 toJson 方法并将其作为变量传递。这里的另一件事是您应该在 " 【参考方案1】:

你可以在这个URL找到Model类的API:https://laravel.com/api/5.0/Illuminate/Database/Eloquent/Model.html你可以看到toJson函数已经存在了。

你的 html 中有一些错字,你写的是“$location->artikel()->toJson()”而不是“$location->article()->toJson()”,也许这是你的问题。

【讨论】:

以上是关于Laravel 雄辩到 json的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 雄辩不更新 JSON 列:数组到字符串的转换

Laravel 雄辩的 all() 方法给出错误“数组到字符串的转换”[关闭]

雄辩的关系,模型的链接(Laravel 5.4)

从 mysql 迁移到 postgresql 时,Laravel 雄辩的 ORM 不起作用

列表模型如何按 DOWN-VOTES 的数量排序到相关模型 - laravel,雄辩

laravel 雄辩 hasOneThrough 外键