雄辩的模型父母和孩子的关系

时间:2018-03-22 01:48:55

标签: eloquent laravel-5.5 laravel-eloquent

我有两个表格问题和问题银行。

我创建了两个模型Question和QuestionBank。

主键:问题表:( QuestionID),QuestionBank表:(QuestionBankID)。

外键:Questions.QuestionBankID = QuestionBank.QuestionBankID

问题模型:

public function QuestionBank() {
        return $this->belongsTo('App\QuestionBank'); // this matches the Eloquent model
}

QuestionBank模型:

public function Questions() {
        return $this->belongsTo('App\Questions'); // this matches the Eloquent model
}

在我的控制器中我写了一段代码:

返回问题:: with('QuestionBank') - > get();

运行路由器:

我为question_bank:null

获得了空值对

我的输出:

[{"QuestionTitle":"OSCE","question_bank":null}]

1 个答案:

答案 0 :(得分:0)

由于您使用非标准列名称,因此必须指定它们:

public function QuestionBank() {
    return $this->belongsTo('App\QuestionBank', 'QuestionBankID', 'QuestionBankID');
}

在相反的方向上,它是HasMany关系:

public function Questions() {
    return $this->hasMany('App\Questions', 'QuestionBankID', 'QuestionBankID');
}

将其添加到Question模型中以调整响应:

protected $appends = ['QuestionBankName'];

public function getQuestionBankNameAttribute() {
    return $this->QuestionBank->QuestionBank;
}