Joomla 组件中的 PHP MVC
Posted
技术标签:
【中文标题】Joomla 组件中的 PHP MVC【英文标题】:PHP MVC in Joomla Component 【发布时间】:2012-01-13 18:23:50 【问题描述】:我正在开发一个使用 MVC 架构的预先创建的 joomla 组件,我的问题是这样的:
在模型中,我有一个 .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 中的表列)
作为:
function getAttendenceData()
$query="SELECT id,octSec,octNin,octSect,octSec,octTwent FROM `table`";
$this->_db->setQuery( $query );
//$this->_data = $this->_db->loadObjectList();
$this->_data = $this->_db->loadObject();
return $this->_db->loadObjectList();
但在 view 中我仍然无法访问从上述新函数获取的数据,但旧函数是工作属性
【问题讨论】:
1.首先检查您是否真的从查询中获取了一些数据。在上面的函数中做print_r($this->_db->loadObjectList())
。 2. 如果是,那么您访问这些数据的视图中的代码是什么?
感谢Vikk
查询工作正常。我以$this->data as $r
的身份访问数据,然后$r->id
从旧函数中获取的数据被很好地获取,只有新函数的问题
在这种情况下,您可以将代码发布到您从模型中检索数据并将其分配给视图变量的位置吗?这应该在您视图的view.html.php
文件中。
@Vikk 这个组件太复杂了,无法发布代码:-) .. 顺便说一句,你能告诉我如何从模型中检索数据并将其分配给视图变量吗?
@vikk 有一些代码为$items= & $this->get( 'Data');
【参考方案1】:
这不是实际答案,而是对评论的回应。
首先在您的view.html.php
文件中,您必须从模型中检索数据。
$attendance_data = & $this->get('AttendenceData');
当您从 getAttendenceData() 函数返回时,这将为您提供对象列表。
现在将它分配给一个视图变量(比如说data
)。
$this->assignRef('data', $attendance_data);
现在您可以在视图中访问这些数据:
foreach($data as $r)
echo $r->id;
【讨论】:
assignRef 自 Joomla 1.6 起已弃用。见这里:***.com/questions/14883180/…【参考方案2】:问题不是你试图获取数据两次吗?
通过这一行,您可以检索它并将其本地存储在类的 _data 变量中。
$this->_data = $this->_db->loadObject();
通过这一行,您尝试再次检索数据,但您已经检索到它(如果只有一个结果)。因此,您可能会返回错误
return $this->_db->loadObjectList();
您应该可能在函数末尾返回 $this->_data - 假设您正在复制的原始函数确实可以正常运行。
【讨论】:
嗨,Dean 非常感谢您的回答,这不是问题.. 就像 Vikk 被告知的那样!谢谢!以上是关于Joomla 组件中的 PHP MVC的主要内容,如果未能解决你的问题,请参考以下文章
JOOMLA 中的 TCPDF 库!组件以 PDF 格式输出 html