2014-12-13 98 views
2

這裏略顯奇怪。laravel'class not found'生產中的錯誤

我有人員和操作。人可以有很多動作,而每個動作只屬於一個人。我使用Chumper的Datatables來顯示人員列表,包括他們的行爲計數。

自從遷移到生產(僞造)的服務器,我調用數據表時,我得到

Symfony \ Component \ Debug \ Exception \ FatalErrorException (E_ERROR) 
Class 'action' not found 

。所示的錯誤

/­vendor/­laravel/­framework/­src/­Illuminate/­Database/­Eloquent/­Model.php:721 

public function hasOne($related, $foreignKey = null, $localKey = null) 
{ 
    $foreignKey = $foreignKey ?: $this->getForeignKey(); 
    $instance = new $related; 
    $localKey = $localKey ?: $this->getKeyName(); 

表明它與我的hasMany關係的問題:

# /models/Person.php 
class Person extends Eloquent { 

    public function actions() 
    { 
     return $this->hasMany('Action'); 
    } 

# /models/Action.php 
class Action extends Eloquent { 

    public function person() 
    { 
     return $this->belongsTo('Person', 'person_id'); 
    } 

我認爲這些都很好,但是,由於它們都工作在本地。 Datatables在其他地方也可以很好地工作,通過其他項目及其相關操作調用並沒有麻煩。

我試過作曲家轉儲自動加載和工匠轉儲自動加載在生產服務器上,但沒有成功。對僞造部署腳本如下:

git pull origin master 
composer install 
php artisan migrate --env=production 

我不知道它是一個配置問題,數據庫問題,一個代碼問題或別的東西完全。我已經回來了許多類似的問題,但沒有出現。任何幫助非常感謝。

+0

你在開發窗口嗎? – lukasgeiter 2014-12-13 12:45:29

+0

不,OSX。如果有幫助,我的模型文件都以大寫字母開頭。 – taekni 2014-12-13 13:20:31

+0

嗯......你的代碼中的任何地方都有'action'嗎? (做一個區分大小寫的搜索) – lukasgeiter 2014-12-13 13:21:53

回答

0

所以我覺得我會自己去做這個。

我懶惰和使用舊的「計數」的方法在PersonsController.phpfunction datatablePersons(),依靠長停止活動關係(即引起n + 1個,所以不得不作廢),因此它在擺動的actions類每當這種關係被要求。

數據表功能在其他控制器(帶清潔「計數」方法)做工精細,所以我剛剛改寫datatablePersons()使用相同的方法。

我還沒有完全查詢權限(至少在口頭上),但 - 看到這個問題在這裏:mysql join ON and AND to laravel eloquent - 但class not found錯誤已經消失。

我(大量地)猜測本地機器上的類圖沒有被刷新,因爲刪除的內容都被刪除了,而生產機器每次都重建,因此差異......?

無論哪種方式,它不再是一個問題。

相關問題