2015-11-10 33 views
-1

請幫我解決以下問題。 我DefaultController與DefaultModel:不能在MVC中使用繼承,PHP

Class DefaultController { 
    public function __construct(DefaultModel $model){ 
     $this->model = $model; 
    } 
} 

而且我得到了AdminController多數民衆贊成打算從DefaultController繼承,但它有自己的個人模式叫AdminModel:

Class AdminController extends DefaultController { 
    public function __construct(AdminModel $model){ 
     parent::__contstruct(DefaultModel $model); 
     $this->model = $model; 
    } 
} 

我得到了以下錯誤:未知的變數DefaultModel。 如果我撤消DefaultModel得到下一個錯誤:得到AdminModel,預計DefaultModel。

請幫我解決這個問題, 非常感謝, 祝您有美好的一天!

回答

1

當您致電parent::__construct時,不包括該類型。你的構造應該是這樣的:

public function __construct(AdminModel $model){ 
    parent::__contstruct($model); 
    $this->model = $model; 
} 
+0

這樣做一個呼籲的錯誤: 預計DefaultModel,得到AdminModel – Alexandr

+0

Errr ...父:: __結構($模型); (沒有額外的t)會更好? – Berniev

+0

如果你的'AdminModel'擴展了'DefaultModel',它不會給你一個錯誤。如果您不想爲模型使用繼承,則可以爲模型聲明一個接口。 – Narf