【发布时间】:2020-09-25 15:40:14
【问题描述】:
我正在尝试获取参加考试的学生的 ID。我在 Laravel 中使用关系,但我不知道我错过了什么。这是代码:
我的模型
考试模式:
class Examen extends Model
{
protected $guarded = [];
public function professor()
{
return $this->belongsTo(Professor::class,'prof_id');
}
public function questions()
{
return $this->hasMany(Question::class);
}
public function examen_passers()
{
return $this->hasMany(Examen_passer::class);
}
}
考试模式:
class Examen_passer extends Model
{
protected $guarded = [];
public function examen()
{
return $this->belongsTo(Examen::class);
}
public function reponses()
{
return $this->hasMany(Reponse::class);
}
public function reponsestxt()
{
return $this->hasMany(Reponsetxt::class);
}
}
我的控制器:
public function corriger()
{
$examen = Examen::where('prof_id',Auth::guard('professor')->id())->get();
dd($examen->examen_passers->etudiant_id);
}
【问题讨论】:
-
甚至使用:foreach($examen as $examen) { echo $examen->examen_passers->etudiant_id; }
-
$examen 的输出是一个集合,您不能在该集合上调用examen_passers 函数,请使用first() 而不是get()
-
谢谢!现在我明白了。
-
不客气,但请注意,首先将返回一条记录,如果您需要所有记录继续使用 get 但随后您必须循环输出以获取 etudiant_id,这是一种方法,您还有其他方法(急切加载,...),具体取决于您要实现的目标
标签: php laravel relationship laravel-6