首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel-5.6中的关系

Laravel-5.6中的关系
EN

Stack Overflow用户
提问于 2018-07-13 21:08:32
回答 1查看 34关注 0票数 0

我有三个类似下面的表格。

代码语言:javascript
复制
posts
    _id   - integer
    name - string

sentences
    _id      - integer
    post_id - integer
    name    - string

translations (word by word)
    _id          - integer
    post_id     - integer
    sentence_id - integer
    word_id     - integer
    name        - string

PostController.php中,我尝试获取数据,如下所示

代码语言:javascript
复制
return Post::with(['sentences', 'sentences.translations'])->limit(2)->get();

我在post.php模型中有函数,如下所示

代码语言:javascript
复制
protected $primaryKey = '_id';
public function sentences()
{
    return $this->hasMany('App\Model\sentence', 'post_id','_id');
}

我在sentences.php模型中有函数,如下所示

代码语言:javascript
复制
protected $primaryKey = '_id';
public function translations()
{
    return $this->hasMany('App\Model\translation', 'sentence_id','_id');
}

我想获取帖子连同句子和翻译。

我可以获取帖子和句子,但我在尝试获取翻译时遇到了问题。

我正在获取sentence_idsentences表的id匹配的所有translations,但post_id与当前post id of post表不匹配。

EN

回答 1

Stack Overflow用户

发布于 2018-07-14 13:16:50

如果您已将主键命名为id以外的任何名称,则需要在每个模型上设置主键名称:

代码语言:javascript
复制
class Post extends Model {
    protected $primaryKey = '_id';
}

将您的关系与正确的名称进行匹配:

代码语言:javascript
复制
return $this->hasMany(Sentence::class, 'post_id','_id');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51325904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档