2015-11-10 34 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