检索JSON输出的数据和关系

时间:2015-04-15 23:17:56

标签: php eloquent laravel-5

我是所有这一切的新手,并试图绕着Laravel。我有两个模型设置和一个数据透视表。我正在尝试以下列格式输出一些JSON:

[
    {
        "question": "somequestiongoeshere",
        "tags": [
            "tag1",
            "tag2"
        ]
    },
    {
        "question": "somequestiongoeshere",
        "tags": [
            "tag1",
            "tag2"
        ]
    }
]

我只能输出标签或问题,但不能输出上述格式。非常感谢任何指导。

Question.php

<?php namespace App;

use Illuminate\Database\Eloquent\Model;

class Question extends Model {

    public function tags() {
        return $this->hasMany('App\Tag');
    }

}

Tag.php

<?php namespace App;

use Illuminate\Database\Eloquent\Model;

class Tag extends Model {

    public function questions() {
        return $this->hasMany('App\Question');
    }

}

控制器

public function index() {
    return Question::all();
}

1 个答案:

答案 0 :(得分:1)

默认情况下,Eloquent在调用(延迟加载)之前不会加载关系。您需要指定要加载的关系,或者“急切加载”它们(与延迟加载相反)。例如:

$questions = Question::with('tags')->get();

查看更多here