我对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');
答案 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');
}
}