模型的多个序列化 - 传统方法是什么?

时间:2016-08-25 18:32:57

标签: laravel eloquent conventions

每个Laravel / Eloquent模型都有一个->toArray()方法,serializing所有模型属性(通过protected $hidden数组指定的属性除外)和一些相关模型为一个整齐的数组,或通过->toJson()进入JSON。

假设我有一个具有很多属性和关系的模型,如下所示:

class Article extends Illuminate\Database\Eloquent\Model {
    protected $with = ['comments'];
    // probably also have several kilobytes of data in the text attribute

    ...

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

此模型通常通过其序列化形式检索和显示,但有两种不同的方式:

  1. 用于查看和评论用户的单个Article。这需要包含完整的文章内容及其所有评论。单独序列化注释可能会或者可能没有意义,而不是将它们包含在$with
  2. 用户选择要查看的文章的文章列表,可能对应于某个主题或搜索请求。在这种情况下,不应包含任何文本和注释,因此有效负载将被最小化。
  3. 传统的做法是什么?例如,您是否创建了另一种序列化方法(例如,->toShortJson()->toLongJson()具有更明智的命名方式)?如果是这样,最小化序列化模型或尽可能使它们具有包容性是否常规?这不符合Laravel哲学吗?

0 个答案:

没有答案