我如何获得 Laravel 与其关系值的关系?

Posted

技术标签:

【中文标题】我如何获得 Laravel 与其关系值的关系?【英文标题】:How can i Get Laravel relationship with its relationship values? 【发布时间】:2020-01-15 06:03:14 【问题描述】:

我有一个 laravel 数据库设计,其中每个结果都与问题有 belongsToMany 关系,每个问题都与主题有 belogsTo 关系。我想用 laravel 上的单个语句从结果中获取主题名称

我已经从 laravel 文档中尝试过这个 https://laravel.com/docs/5.6/eloquent-relationships#has-many-through

这是我的结果模型代码

public function questions()
    return $this->belongsToMany('App\questions', 'results_questions', 'result_id', 'questions_id');

问题模型的代码

public function subject()
    return $this->belongsTo('App\Subject','subject_id');

这是我从文档中尝试过的(不起作用)

public function subjects()
    return $this->hasManyThrough(
        'App\Subject',
        'App\questions',
        'subject_id', // Foreign key on question table...
        'questions_id', // Foreign key on result table...
        'id', // Local key on question table...
        'id' // Local key on result table...
    );
**strong text**

【问题讨论】:

【参考方案1】:

尝试从关系中删除第 5 和第 6 个参数,因为它们是可选的。另外,你的Questions 模型应该是小写的吗?

public function subjects()
    return $this->hasManyThrough(
        'App\Subject',
        'App\questions', //*Should this be lowercase?*
        'subject_id', // Foreign key on question table...
        'questions_id', // Foreign key on result table...
    );

【讨论】:

没问题,很高兴我能帮上忙。

以上是关于我如何获得 Laravel 与其关系值的关系?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Laravel/Eloquent 中获得完整的关系

Laravel Eloquent 如何根据计数获得关系总和

如何在laravel中获得多态关系?

Laravel Eloquent - 如何获得嵌套关系

Laravel 5.1 - 具有空值的模型上的关系

如何使用 Laravel 关系从数据库中获取父元素?