我正在使用 CodeIgniter 并创建了几个类(在我的模型文件夹中):
Entity
是一个抽象类(用于表示将在表单中并进入数据库的任何内容)Login
扩展Entity
(用于管理用户登录:用户名、密码...)Webform
(用于创建基于实体的表单)
在我的控制器中,我有这个:
$this->load->model('login');
$myLogin = new Login(array('stuff' => 'value'));
$form = new Webform($myLogin);
在我的模型中,我有 Webform 类:
class Webform
{
protected $entity;
protected $fields;
public function __construct(Entity $entity)
{
$this->setEntity($entity);
}
public function setEntity(Entity $entity)
{
$this->entity = $entity;
}
}
加载“Webform”模型时出现错误config/autoload.php
(至少我认为它在那里,因为控制器代码工作得很好,并且视图显示在这 3 个错误下方):
A PHP Error was encountered
Severity: 4096
Message: Argument 1 passed to Webform::__construct() must be an instance of Entity, none given, called in (...)\system\core\Loader.php on line 303 and defined
Filename: forms/webform.php
Line Number: 8
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: entity
Filename: forms/webform.php
Line Number: 10
A PHP Error was encountered
Severity: 4096
Message: Argument 1 passed to Webform::setEntity() must be an instance of Entity, null given, called in (...)\application\models\forms\webform.php on line 10 and defined
Filename: forms/webform.php
据我所见,CI 自动加载坚持应该有一个Entity
- 但我在这里只想让 CI 知道我什么时候该去哪里$foo = new Webform($bar);
我做错了什么?谢谢!
编辑 - 已修复(我认为)我想我明白了 - CI 加载类就像实例化它 - 而不是加载它,我做了一个很好的旧 require_once。看起来它现在正在工作。