获取与一个Model相关的所有属性作为JSON

时间:2014-07-16 18:04:44

标签: json laravel laravel-4

我为作者提供了这个模型:

<?php


class Author extends Eloquent {    

  public function albums()
  {
    return $this->belongsToMany('Album')->withPivot('city');
  }

}

专辑的这个模型:

<?php


class Album extends Eloquent {

  public function artist()
  {
    return $this->belongsTo('Artist');
  }

  public function authors()
  {
    return $this->belongsToMany('Author')->withPivot('city');
  }

}

要获得模型,我可以轻松地执行此操作:

$author = Author::where('name','=','Chester Bennington')->first()->toJson();

并且它会返回类似这样的内容(作为JSON):

{"id":3,"name":"Chester Bennington","created_at":"2014-06-29 16:10:21","updated_at":"2014-06-29 16:10:21"}

看到它不会返回与之相关的相册。要获得相册,我必须这样做:$author->albums->toJson()

由于我正在做一个API并且它以JSON的形式返回所有内容,有没有办法获取模型及其所有属性而不指定要获取哪些?

1 个答案:

答案 0 :(得分:1)

如果您想要eager load the relationships,它将包含在您的JSON中:

Author::with('albums')->where('name', 'Chester Bennington')->first()->toJson();