Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.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
Php Joomla组件MVC变量在视图和控制器之间传递_Php_Model View Controller_Joomla - Fatal编程技术网

Php Joomla组件MVC变量在视图和控制器之间传递

Php Joomla组件MVC变量在视图和控制器之间传递,php,model-view-controller,joomla,Php,Model View Controller,Joomla,我对Joomla和他们实现MVC架构的方式比较陌生。它与我习惯于使用它的方式(CodeIgniter等)稍有不同,我在向视图传递数据时遇到了一些问题 我在控制器中创建了一个名为“getInitClubs”的函数,该函数在页面运行时会自动运行,因此我从“view.html”文件中调用了该函数 这是我的密码: 控制器功能: public function getInitClubs() { $model =& $this->getModel('directory');

我对Joomla和他们实现MVC架构的方式比较陌生。它与我习惯于使用它的方式(CodeIgniter等)稍有不同,我在向视图传递数据时遇到了一些问题

我在控制器中创建了一个名为“getInitClubs”的函数,该函数在页面运行时会自动运行,因此我从“view.html”文件中调用了该函数

这是我的密码:

控制器功能:

public function getInitClubs() {
        $model =& $this->getModel('directory');
        $init_clubs = $model->clubResults($conds = array());
        return $init_clubs;
    }
模型函数:

public function clubResults($conds) {
    $query = "SELECT * FROM vyj20_contact_details";
    if(isset($conds['city'])) {
        $query .= " WHERE state = '" . mysql_escape_string($conds['city']) . "'";
    }
    if(isset($conds['suburb'])) {
        $query .= " AND suburb = '" . mysql_escape_string($conds['suburb']) . "'";
    }
    $this->_db->setQuery($query);
    $results = $this->_db->loadObjectList();
    return $results;
}
现在我知道模型和控制器代码可以工作了,这不是问题所在,问题实际上是从控制器函数“getInitClubs”中提取结果并通过视图显示它们

我如何从视图调用控制器函数(就像我在CodeIgniter MVC上那样),以便收集结果以供显示?我试了又试,但就是想不出来!
感谢
JView
实例具有
getModel()
方法。您将获得访问的模型实例,该实例在所有组件之间共享。在
JController
实例中,您应该更改该模型的状态,在
JView
实例中,您应该取出数据

MVC设计模式中的视图应该从模型层获取信息,并使用模板进行渲染,或者在某些情况下,只发送一个简单的HTTP头。在这方面,Joomla对MVC模式有着惊人的好理解

p.S.自从PHP5.0发布以来(2005年左右),分配对象时不需要使用引用。它实际上是有害的,因为它扰乱了refcount


你的控制器功能应该是这样的

$model =& $this->getModel('directory');
$init_clubs = $model->clubResults($conds = array());
$view = $this->getView('view_name', 'html'); // get the view
$view->assignRef('data_list', $init_clubs); // set the data to the view
$view->display(); // show the view
阅读更多

。它们不再得到维护,并且已经开始使用。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO。