如何在讲座之前在URL路径中添加我的课程Slug?

时间:2019-08-08 03:28:04

标签: laravel vue.js

我目前正在为我的作业做一个项目,但我没有设法看到这样的东西来解决我的问题。

我有2个型号分别为CourseCourseLecture。并且我在课堂上根据互联网上的教程使用getPathAttribute

在我的课程模型中,我正在使用像这样的getPathAttribute:

public function getPathAttribute()
{
    return "/clientside/instructor/courses/$this->slug";
}

和我的CourseLecture模型中:

public function getPathAttribute()
{
    return "/clientside/instructor/courses/{course}/lectures/$this->slug";
}

我需要将课程提示放到该getPathAttribute上,例如:

http://url.com/clientside/instructor/courses/php/lectures/one

我的CourseLecture也正在使用course_id,而且我之间有一种关系,它们之间的关系是belongsTo' and HasMany'。那么如何在此路径中基于此构造函数添加课程资料?

为此作业,我还要使用Vue.js / Laravel。这是一个水疗中心。我已经标记了vue.js bcs,如果有任何通过路由器解决此问题的解决方案,我将很乐意使用它。

1 个答案:

答案 0 :(得分:1)

您可以从course slug模型上定义的course()关系中动态获取CourseLecture。见下文:

CourseLecture模型中:

protected $appends = ['path'];

// relationship
public function course()
{
   return $this->belongsTo(Course::class);
}

public function getPathAttribute()
{
    return "/clientside/instructor/courses/{$this->course->slug}/lectures/$this->slug";
}