0

我正在使用 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。看起来它现在正在工作。

4

0 回答 0