使用 Laravel 的 Eloquent ORM 获取多态关系、关联关系的 Json 数据问题

分享 yangyugang ⋅ 于 3年前 ⋅ 最后回复由 session 4个月前 ⋅ 9092 阅读
  • 第一次使用Laravel来写API,在这遇到一个问题,有以下几张表feeds、comments、likes,使用Eloquent ORM来获取下面的json,
[
  {
    id:1,
    content:"xxx",
    like_users:[{id:1, account_id:"nicname"}, ] 这里希望获取user对象
    comments:[{id:1, content:"xxx", user:{}, parent_user:{}},]  
  },
]
  • 这是我的PHP代码
$paginator = Feed::with('comments', 'likes', 'images')
                ->orderBy('created_at', 'desc')
                ->paginate($pageSize);
  • 但是获取的json格式为
[
  {
    id:1,
    content:"xxx",
    like_users:[{id:1, account_id:"x", likeable_id:"", likeable_type:"xxx"}, ]//返回的是likes表里的数据
    comments:[{id:1, content:"xxx", user_id:"x", parent_id:"x"},]   
  },
]
  • 求大神指教,下面是我的model层
class Account extends Eloquent {
}
class Feed extends Eloquent {
    public function comments(){
        return $this->hasMany('Comment');
    }
    public function likes() {
        return $this->morphMany('Like', 'likeable');
    }
}
class Comment extends Eloquent {
   public function parent() {
        return $this->belongsTo('Comment');
    }
    public function children() {
        return $this->hasMany('Comment');
    }   
}
class Like extends Eloquent {
   public function likable() {
        return $this->morphTo();
    }
}

本文章首发在 Laravel China 社区
回复数量: 5
暂无评论~~
您需要登陆以后才能留下评论!

Composer 中国全量镜像

Top 100 扩展包

Lumen 中文文档

Laravel 速查表

Laravel 中文文档

Laravel 项目开发规范

Laravel 开发环境部署

Elasticsearch-PHP 中文文档

Lumen 中文文档

GraphQL PHP 中文文档

社区文档撰写指南

TDD 构建 Laravel 论坛笔记

PHP PSR 标准规范

PHP 设计模式全集

Dingo API 中文文档