Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Joomla 多个模型-未检索到数据_Joomla_Joomla3.0_Joomla3.2 - Fatal编程技术网

Joomla 多个模型-未检索到数据

Joomla 多个模型-未检索到数据,joomla,joomla3.0,joomla3.2,Joomla,Joomla3.0,Joomla3.2,我试图在我的观点中使用多个模型。“我的视图”是单个项目,模型是使用选项卡在视图中显示的列表 在我的控制器中,我在显示功能中添加了setModel class ComplianceControllerCompliance extends JControllerForm { public function display( $cachable = false, $urlparam = array() ) { $view = $this->getVi

我试图在我的观点中使用多个模型。“我的视图”是单个项目,模型是使用选项卡在视图中显示的列表

在我的控制器中,我在显示功能中添加了setModel

class ComplianceControllerCompliance extends JControllerForm
{
    public function display( $cachable = false, $urlparam = array() )
    {       
        $view = $this->getView( 'myview', 'html' );
        $view->setModel( $this->getModel( 'mymodel' ), true );

        $view->setModel( $this->getModel( 'content' ) );

        $view->display();
    }
在我看来,我试图像这样访问所需的信息

$this->content_items        = $this->get( 'Items', 'content' );
$this->content_pagination   = $this->get( 'Pagination', 'content' );
$this->content_state        = $this->get( 'State', 'content' );
但是我没有得到任何信息


我做错了什么?

使用多个模型的基础是找到获取每个模型实例的方法。最可能的问题是
$this->getModel('yourmodelname')
返回false

测试此部件是否工作:

$testModel = $this->getModel('yourmodelname');
var_dump($testModel);

我想你已经学过了。

是的,我学过了。所以我在我的控制器中的显示函数中设置了一个断点,但似乎我从未到达那里?!添加的转储没有给我任何信息。好的,原因是您可能没有调用控制器,而是调用视图。您的URL应该如下所示:
index.php?option=com\u example&task=display
NOT
index.php?option=com\u example&view=yourviewname
。这有意义吗?会的,但是根据没有任务的情况,默认任务是“查看”。然而,我尝试了你的想法,但遗憾的是它没有成功。有什么想法吗?如果你在分包商中,试试
index.php?option=com\u example&task=controllername.display
。最后但并非最不重要的一点是,使用调试器。这成功了,现在我开始使用display函数,它似乎按照预期工作,非常感谢。我仍然不明白的是,为什么我需要调用task=controller.display?每当使用display任务时,不应该调用controller吗?