Joomla组件中的PHP MVC
我正在使用MVC架构开发一个预先创建的joomla组件,我的问题如下: 在模型中,我有一个Joomla组件中的PHP MVC,php,model-view-controller,joomla,Php,Model View Controller,Joomla,我正在使用MVC架构开发一个预先创建的joomla组件,我的问题如下: 在模型中,我有一个.php文件,其数据库获取功能如下所示 defined( '_JEXEC' ) or die( 'Restricted access' ); jimport( 'joomla.application.component.model' ); class class_name extends JModel { var $_data; function getlast_year(){
.php
文件,其数据库获取功能如下所示
defined( '_JEXEC' ) or die( 'Restricted access' );
jimport( 'joomla.application.component.model' );
class class_name extends JModel
{
var $_data;
function getlast_year(){
$query = 'SELECT year FROM `table` ORDER BY year DESC LIMIT 0,1';
$this->_db->setQuery( $query );
return $this->_db->loadResult();
}
}
我在同一个类文件中添加了一个新函数:(我也在MVC/tables中更新了表列)
作为:
但是在视图中,我仍然无法访问从上述新函数获取的数据,但是旧函数正在工作,这不是实际的答案,而是对注释的响应 首先,在
view.html.php
文件中,必须从模型中检索数据
$attention\u data=&$this->get('attentincedata')代码>
当您从getAttentEnceData()函数返回时,这将为您提供对象列表
现在将其分配给一个视图变量(比如data
)
$this->assignRef('data',$attention\u data)代码>
现在,您可以在视图中访问此数据:
foreach($data as $r)
{
echo $r->id;
}
问题不在于您尝试两次获取数据吗
通过这一行,您可以检索它并将其本地存储在类的_数据变量中
$this->_data = $this->_db->loadObject();
在这一行中,您尝试再次检索数据,但您已经检索了它(如果只有一个结果)。因此,您可能返回了一个错误的
return $this->_db->loadObjectList();
您可能应该在函数末尾返回$this->\u数据-假设您要复制的原始函数确实可用。1。首先检查您是否确实从查询中获取了一些数据。在上述函数中执行打印($this->\u db->loadObjectList())
。2.如果是,那么您访问此数据的视图中的代码是什么?谢谢Vikk
query工作正常。我以$this->data as$r
的形式访问数据,然后$r->id
从旧函数中获取的数据可以很好地获取只有新函数的问题在这种情况下,您可以将代码发布到从模型中检索数据并将其分配给视图变量的位置吗?这应该在视图的view.html.php
文件中。@Vikk此组件非常复杂,无法发布代码:-)。。顺便问一下,你能告诉我如何从模型中检索数据并将其分配给视图变量吗?@vikk有一些代码,如$items=&$this->get('data')代码>嗨,院长,非常感谢你的回答,这不是问题所在。。这是维克被告知的!谢谢自Joomla 1.6以来,assignRef已被弃用。请看这里:
return $this->_db->loadObjectList();