【问题标题】:has many returning empty有很多返回空
【发布时间】:2017-06-15 15:12:08
【问题描述】:

我有两个模型 1.Question,主键questionId有关系

public function option(){

        return $this->hasMany('Option', 'question_id', 'question_id');

    }

AnswerOption 

主键是option_id,外键是questionId,当我尝试在控制器中访问这个关系时

  $data=  Question::where('question_id',3)->with('option')->get();

它总是返回空数组以获取答案

Array
(
    [0] => Array
        (
            [question_id] => 3
            [option_id] => 3
            [question] => ww
            [questionType] => gfg
            [option] => Array
                (
                )

        )

)

但我在 answeroptions 表中还有外键 3 中的数据

谁能帮我解决我做错的地方

【问题讨论】:

  • 看来你的hasMany关系错了,应该是:return $this->hasMany('App\Models\AnswerOption', 'questionId', 'optionId');
  • @btl。不,我在第二个表中将外键定义为 questionId。选项 id 是第二个表的主键
  • 愚蠢的问题,但是您的选项表中有questionid 为3 的行吗?
  • @aynber。我有 。我正在使用流明

标签: relationship


【解决方案1】:

我会说你的关系是错误的。您必须指定相关的表ID。

$this->hasMany('model', 'foreign_key', 'local_key');

另外我建议你使用 Laravel 的命名表和字段的约定。

https://laravel.com/docs/5.4/eloquent-relationships#one-to-many

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-08
    • 1970-01-01
    • 2016-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-13
    • 1970-01-01
    相关资源
    最近更新 更多