Model.php第827行中的Laravel FatalErrorException:找不到类

时间:2015-10-28 15:10:27

标签: php laravel

我对Laravel很新。 我试图在我的代码中使用一个示例,但结果我收到了一个错误 - FatalErrorException in Model.php line 827: Class Category not found

之后我修改了一行代码并修复了错误。但是,我实际上并不了解错误的原因以及我如何解决它。

这是我的代码(因此,当我尝试使用category构建查询时 - 我收到错误):

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use App\Category;

class Translation extends Model
{
    protected $fillable = array('lang1', 'lang2', 'lang1_code', 'lang2_code', 'category_id', 'created_at', 'updated_at');

    public function category() {
        return $this->belongsTo('Category', 'category_id');
        //return $this->belongsTo('App\Category', 'category_id');
    }        
}

但是,当我修改一行时,我没有上述错误:

旧行(错误):return $this->belongsTo('Category', 'category_id');

新行(无错误):return $this->belongsTo('App\Category', 'category_id');

2 个答案:

答案 0 :(得分:2)

所有模型通常都存储在App文件夹中。

因此,对于关系,您需要将完整路径传递给模型,例如

App\Category

答案 1 :(得分:2)

在关系中,您必须在PHP 5.5之前添加完整路径

'App\Category'

自PHP 5.5 以来,class关键字也用于类名解析。您可以使用ClassName::class获取包含ClassName类的完全限定名称的字符串。这对于命名空间类特别有用。

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use App\Category;

class Translation extends Model
{
    protected $fillable = array('lang1', 'lang2', 'lang1_code', 'lang2_code', 'category_id', 'created_at', 'updated_at');

    public function category() {
        return $this->belongsTo(Category::class, 'category_id');
    }        
}