2013-06-01 71 views

回答

1

是的!一個擴展Eloquent的類不會使它成爲僅用於雄辯目的的類。你已經意識到了類擴展的概念。類擴展可以簡單地將特徵添加到另一個現有類的任何類中。在這種情況下雄辯。

你可以採取你已經擁有的任何模型,並且明天決定你想使用它與雄辯,並簡單地擴展它。你原來的班級仍然是你原來的班級,工作原理是一樣的。如果父母擁​​有同名的東西,那麼原始類中的任何方法或屬性都會覆蓋父類(Eloquent)。

實際上,在一個擴展Eloquent的類中創建其他方法是創建強大模型的真正方法,它可以做各種各樣的酷東西。例如,我在用戶模型中創建方法,計算出生日之前的多少天。而不是將生日欄拉到控制器中,然後使用PHP來進行計算,我只是有一個像User :: daysUntilBirthday()這樣的方法。

如果您使用構造函數並擴展Eloquent,請確保仍然觸發Eloquent的構造函數。

class MyModel extends Eloquent { 

    public function __construct($attributes = array(), $exists = false) 
    { 
     parent::__construct($attributes, $exists); // This will fire off Eloquent's constructor. 
     // Your construct code. 
    } 
} 
+0

那麼爲什麼我不能播種我的數據庫,如果我有一個構造函數定義我的雄辯模型?我會在數據庫中獲得一行,但沒有任何內容。 – vikingsfan19

相關問題