我在构造函数中的模型中设置了我的表的名称:
public function __construct($section, $attributes = array(), $exists = false){
parent::__construct($attributes, $exists);
$this->table = $section;
}
稍后在课堂上我使用这个方法:
public function getEdit($id){
return $this->find($id);
}
但它失败了:
Missing argument 1 for MyModel::__construct()
我出错的任何想法?
答案 0 :(得分:0)
如果您覆盖了另一个类提供的方法,则应将自己的参数作为可选参数添加到参数列表的末尾。原因是可能存在依赖于旧实现的代码。您不能指望它知道您的新实现,因此您必须将自己的东西添加到最后(并且是可选的,因为现有的实现不会提供它)。
因此,将构造函数更改为:
public function __construct($attributes = array(), $exists = false, $section = null){
parent::__construct($attributes, $exists);
$this->table = $section;
}
你应该发现它有效。显然你现在必须更新你的代码以传递$ seciton作为最后一个参数。