我开发了自定义组件。最初,Joomla 1.5具有数据数组,可以将数据从表发送到模板。
class MyComponentClass extends JModel{
/**
* MyComponentClass data array for tmp store
*
* @var array
*/
private $_data;
/**
* MyComponentClass data array for tmp store
*
* @var array
*/
private $_mine;
/**
* Gets the data
* @return mixed The data to be displayed to the user
*/
public function getData(){
if (empty( $this->_data )){
$id = JRequest::getInt('id', 0);
$db =& JFactory::getDBO();
$query = "SELECT * FROM `#__tourinfo` where `id` = {$id}";
$db->setQuery( $query );
$this->_data = $db->loadObject();
}
return $this->_data;
}
public function getMine(){
if (empty( $this->_mine )){
$recordSet =& $this->getTable('mytable');
$db =& JFactory::getDBO();
$query = 'SELECT * FROM `#__mytable` WHERE ' . (isset($recordSet->published)?'`published`':'1') . ' = 1 ORDER BY `id` ';
$this->_mine = $this->_getList( $query, $this->getState('limitstart'), $this->getState('limit') );
}
return $this->_mine;
}
}
根据文档我只看到$ _data数组,它将信息发送到模板。
此模型发送单个记录视图的数据。
在其他表中,我有一些与此记录关联的数据。
当我尝试将数据接收到模板中时,我遇到一个错误,即没有数据提供给foreach。
可能有人知道这种情况的解决方案。
提前致谢!
答案 0 :(得分:1)
您在yourcomponent / view / yourview / view.html.php文件中分配模板所需的任何数据。
请参阅:
http://docs.joomla.org/Developing_a_Model-View-Controller_Component_-_Part_1
以下是view.html.php文件中典型方法的示例:
function listItems()
{
$model = &$this->getModel('yourmodel');
$items = $model->getItems();
if ($items) {
$this->assignRef( 'items', $items );
}
parent::display($tpl);
}
注意上面代码中的分配:
$ this-> assignRef('items',$ items);
然后,您可以在模板中调用$ this->项目,以便与foreach一起进行。
希望这有帮助。