2017-02-03 10 views
1

私は自分のlaravelプロジェクトにモデルを作成してそこにコンストラクタ関数を入れましたが、誰かがlaravelの雄弁にあらかじめ構築されたコンストラクタメソッドがあると教えてくれました。laravelモデルのコンストラクタ

私が作成したことを意味しますか__constructor()私はどこかに隠されている現在のコンストラクタをオーバーライドしていますか?

答えて

0

あなたはいつもあなたのコンストラクタ内で親のコンストラクタを呼び出すことができます。

class MyModel extends Eloquent { 

    function __construct() { 
      parent::__construct(); 
    } 
} 

編集:これはhttps://github.com/illuminate/database/blob/v4.2.17/Eloquent/Model.php#L243

は時々あなたが親の前に独自のコードを呼び出したいあなたのための次のコンストラクタを呼び出します。コンストラクタコールと時には、このリンクが2つの状況のどちらがあなたのニーズに最も適しているかを判断するのに役立ちます。

+0

ありがとうございました!しかし、親構造体は、それを自分で呼び出すことなく、オブジェクトを作成する際に常に自動的に使用されますか? – divHelper11

+1

通常はそうですが、独自のコンストラクタを書くとすぐに上書きします。そのためです。まったく同じ名前の他の関数についても同じです。 http://stackoverflow.com/questions/2994758/what-is-function-overloading-and-overriding-in-php –

+1

ありがとうございました! – divHelper11