Laravel:在关系中找不到模型类

时间:2017-01-27 11:16:20

标签: php orm laravel-5.3

首次使用关系并有问题理解它。

我有一个Student类和一个Course模型类。学生可以参加很多课程。在Student模型中我这样做:

public function course()
    {        
        return $this->belongsTo('Course');
    }

并在控制器中执行此操作:.$student->course()->course_title它会出错:

FatalThrowableError in Model.php line 779:
Class 'Course' not found

我做错了什么?

3 个答案:

答案 0 :(得分:0)

用它替换你的代码

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

答案 1 :(得分:0)

确保Course课程中的命名空间与“App \ Models'”匹配。您可能正试图访问"空"命名空间。

命名空间声明在类文件的顶部。例如:

Course.php:

namespace App\Models;

use Illuminate\Http\Request;
...


class Course extends Model { ... }

OtherClass.php

namespace App\Models;

use Illuminate\Http\Request;
...


class OtherClass extends Model { 

...

    public function course()
    {
        return $this->belongsTo('App\Models\Course')
    }

}

请注意,在Course.php顶部声明的命名空间与提供给关系方法(返回)belongsTo()的路径相匹配。您还可以向belongsTo方法提供Course::class,但您需要在php类中导入该类use

我希望这有帮助!

答案 2 :(得分:0)

我遇到了同样的问题,我通过在模型顶部添加名称空间来解决它

对于你的情况,

use \App\Course ; // Your name space of your class in relation

希望这有助于他人

注意:我使用的是Laravel 5.0