0

在类中调用函数时,我使用的是这样的:

protected $_mdl  = 'mdl_posts_latest';

function __construct()
{
    parent::__construct();
    $this->load->model($this->$_mdl);
}

public function index()
{
    $offset = 0;
    $limit = 5;
    $data['p_latest'] = $this->mdl_posts_latest->get_posts_latest($offset, $limit);
    ...
    ...
    ...
    .

它正在工作。

问题是当我尝试类似:

$data['p_latest'] = $this->$this->$_mdl->get_posts_latest($offset, $limit);

它抛出这个错误:

Posts_latest 类的对象无法转换为字符串

因为,显然,这段代码是错误的:$this->$this->$_mdl->

所以,我的问题是如何在类的顶部定义一次模型的名称,然后在所有调用函数等时将其用作变量。

因为现在我不知道该怎么做,所以它看起来像这样:

$this->$model->get_something();
4

2 回答 2

1

当你加载模型时,你应该像这样访问成员变量,而不是$前面的成员变量的名称:

$this->load->model($this->_mdl);

您可以查看 PHP 的变量变量复杂(卷曲)语法。它允许你做这样的事情,你可以使用变量的值:

$this->{'_mdl'}->get_posts_latest($offset, $limit);
于 2013-05-12T10:47:02.447 回答
-1
$this->load->model($_mdl);

代替

$this->load->model($this->$_mdl);

然后:

$data['p_latest'] = $this->$_mdl->get_posts_latest($offset, $limit);

或者

$md1 = $this->$_md1;
$data['p_latest'] = $md1->get_posts_latest($offset, $limit);
于 2013-05-12T10:06:41.060 回答