2015-10-28 26 views
4

我對Laravel很新。 我試圖在我的代碼中使用一個示例,但因此出現錯誤 - FatalErrorException in Model.php line 827: Class Category not foundModel.php中的Laravel FatalErrorException第827行:未找到類

之後我修改了一行代碼並修復了一個錯誤。但是,實際上我不明白錯誤的原因以及我如何修復它。

這是我的代碼(其結果,當我試圖建立使用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');

+1

哪些是'Category'和'Translation'文件類的路徑? – Moppo

+0

檢查'Category'的名稱空間,但如果保留默認值,它應該是'$ this-> belongsTo(「App \ Category」,...);' –

回答

2

所有模型都通常存儲在App文件夾中。

所以您需要的完整路徑傳遞到你的模型的關係,像

App\Category 
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'); 
    }   
} 
相關問題