Eloquent 模型父子关系

Eloquent Model parent and child relationship

我有两个 tables 问题和 QuestionBank。

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

主键:问题table:(QuestionID),QuestionBank table:(QuestionBankID).

外键:Questions.QuestionBankID = QuestionBank.QuestionBankID

问题模型:

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

题库模型:

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

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

return Questions::with('QuestionBank')->get();

运行 路由器:

我得到了 question_bank:null

的空值对

我的输出:

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

由于您使用 non-standard 列名称,因此必须指定它们:

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;
}