eloquent - 在共享的一对多关系中访问父模型的属性

时间:2015-03-30 23:31:25

标签: php laravel orm eloquent blade

我有以下雄辩的模型:

[用户]

public function studentProfile()
{
        return $this->hasOne('App\StudentProfile');
}

public function tutorProfile()
{
        return $this->hasOne('App\TutorProfile');
}

[StudentProfile]

public function user()
{
        return $this->belongsTo('App\User');
}

public function tutorialLogs()
{
        return $this->hasMany('App\TutorialLog', 'student_profile_id');
}

[TutorProfile]

public function user()
 {
        return $this->belongsTo('App\User');
 }

 public function tutorialLogs()
 {
        return $this->hasMany('App\TutorialLog', 'tutor_profile_id');
 }

[TutorialLog]

public function tutorProfile()
{
        return $this->belongsTo('App\TutorProfile');
}

public function studentProfile()
{
        return $this->belongsTo('App\StudentProfile');
}

我的数据库结构也是这样的:

[用户]

id
fname

[student_profiles]

id
notes
user_id

[tutor_profiles]

id
speciality
user_id

[tutorial_logs]

id
notes
student_profile_id
tutor_profile_id

我正在尝试根据tutor_profile_id获取导师的教程日志。我已经这样做了,但是当我要获得导师姓名或学生姓名时,我不能。

这是我的代码:

$tutor = User::whereId(Auth::user()->id)->first();

// get the tutorial logs
$tutorial_logs = $tutor->tutorProfile->tutorialLogs()->orderBy('date')->get();

我不知道如何在视图中访问学生fname或者教师fname。

有任何帮助吗?感谢

1 个答案:

答案 0 :(得分:1)

您可以访问的学生fname

{{ $tutor->student_profile->user->fname }}

您可以访问的导师fname

{{ $tutor->user->fname }}