2015-10-21 85 views
0

我想驗證我的模型是有效的,當我保存或更新它。 所以我創建了一個名爲EloquentValidating的類,我從中擴展了我的所有模型的類。 這裏是EloquentValidating我開機功能:Laravel 5.1:啓動功能不叫

public static function boot() 
{ 
parent::boot(); 

static::creating(function($item) 
    { 
     if(!$item->isValid()) return false; 
    }); 
static::updating(function($item) 
    { 
     if(!$item->isValid()) return false; 
    }); 

} 

我的問題是,開機不會被調用。我已經在其中設置了一個斷點,它從來沒有動搖過。所以我的模型在保存前沒有驗證。

我有另一個項目使用相同的邏輯,它工作。唯一的區別是我可以看到的事實是,我在另一個項目中有命名空間,而不是在這個項目中。所以失敗類被定義爲

use Illuminate\Database\Eloquent\Model; 
class EloquentValidating extends Model { 

而工作一個被定義爲:

namespace App\Models; 
use Illuminate\Database\Eloquent\Model; 
class EloquentValidating extends Model { 

可能的命名空間導致這樣那樣的問題,爲什麼??? 如果我必須介紹命名空間,我會的,但我想明白爲什麼它是原因。

感謝 伯努瓦

回答

1

看起來你需要更新編譯的類。運行

php artisan clear-compiled 

然後...

php artisan optimize 

如果問題仍然存在,那麼做手工刪除文件bootstrap/cache/services.json,它會自動在下一個請求

+0

沒有工作產生。這個系統是GIT最新的,所以我必須在之前做一個作曲家更新。所有生成的文件都是新的。 –

+0

好吧,我已經添加了命名空間,然後這樣做了,然後它工作。 –

+0

太棒了!很高興聽到這個消息 – manix