2
在Laravel中創建基本模型時,我擴展了Eloquent
類,以便我的模型具有所有令人敬畏的Eloquent功能。例如:Laravel在創建模型時擴展了口才
class Product extends \Eloquent {
//class definition here
}
我一直在讀通過Laravel框架源代碼,我不明白的地方這Eloquent
類實際上來自。我可以看到有一個Illuminate\Database\Eloquent\Model
類,它似乎具有我期望從Eloquent
類擴展的所有功能,但是我很困惑繼承是如何工作的,因爲我擴展了Eloquent
而不是Illuminate\Database\Eloquent\Model
。
這是如何工作的?
這個別名是如何工作的?如果我擴展'Eloquent',那麼PHP不會拋出類未找到類錯誤的錯誤?我試圖找到實現這一目的的代碼。 – flyingL123 2015-01-26 18:24:37
我相信框架內部發生了很多事情,但這是一個起點。 查看供應商/ laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterFacades.php文件 '使用Illuminate \ Support \ Facades \ Facade; 使用Illuminate \ Foundation \ AliasLoader; 使用Illuminate \ Contracts \ Foundation \ Application; Facade :: setFacadeApplication($ app); AliasLoader :: getInstance($ app ['config'] ['app.aliases']) - > register();' – 2015-01-26 18:29:06
謝謝。在'config/app.php'中的這個數組中,我還看到了'SoftDeletingTrait'=>'Illuminate \ Database \ Eloquent \ SoftDeletingTrait'的條目。如果存在這種情況,爲什麼我需要使用軟刪除特性將此行包含在每個模型的頂部? '使用Illuminate \ Database \ Eloquent \ SoftDeletingTrait;'。我不應該只在模型中使用SoftDeletingTrait;而不需要導入命名空間? – flyingL123 2015-01-26 18:33:00