【问题标题】:Laravel eloquent to jsonLaravel 雄辩到 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 方法并将其作为变量传递。这里的另一件事是您应该在 "

标签: php jquery laravel eloquent vue.js


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2021-07-03
    • 2021-05-12
    • 1970-01-01
    • 1970-01-01
    • 2014-11-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2022-07-25
    相关资源
    最近更新 更多