【问题标题】:yii cant create new instance of classyii 无法创建新的类实例
【发布时间】:2014-08-09 06:55:31
【问题描述】:

在我看来,我正在尝试做:

$accountLogin = new AccountLogin;

它应该创建一个在我的供应商库中定义的类的新实例。

class AccountLogin extends CFormModel
{
..
}

但我收到的是unable to open stream('AccountLogin')

我做错了什么?我应该在某个地方指定目录所在的位置吗?

【问题讨论】:

  • 你应该先导入这个文件,放到components文件夹中

标签: php yii


【解决方案1】:

你必须先导入你的类。

在 yii 中导入任何类的最简单的方法是把它放在像这样的组件中:

类:

class RegionSingleton extends CApplicationComponent
{
    private $_model=null;


    public function setModel($id)
    {
        $this->_model=Region::model()->findByPk($id);
    }

    public function getModel()
    {
        if (!$this->_model)
        {
            if (isset($_GET['region']))
                $this->_model=Region::model()->findByAttributes(array('url_name'=> $_GET['region']));
            else
                $this->_model=Region::model()->find();
        }
        return $this->_model;
    }

    public function getId()
    {
        return $this->model->id;
    }

    public function getName()
    {
        return $this->model->name;
    }
}

并在 config main 中包含此类,然后您可以在所有应用程序中快速调用它:

'components'=>array(
        'region'=>array('class'=>'RegionSingleton'),
         ...
        )

现在,我们可以这样称呼它:

Yii::app()->region->model;

为了有模型,或者还有

Yii::app()->region->id

用于检索 id。

我们也可以使用设置模型

Yii::app()->region->setModel($id)

参考: link1

【讨论】:

    猜你喜欢
    • 2014-07-25
    • 1970-01-01
    • 1970-01-01
    • 2011-09-09
    • 2011-08-24
    • 2013-12-14
    • 1970-01-01
    相关资源
    最近更新 更多