2012-04-16 2 views
0

У меня есть пользовательский компонент. Первоначально Joomla 1.5 имеет массив данных, который отправляет данные из таблицы в шаблон.Второй выбор в пользовательском компоненте 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.

Возможно, кто-то знает решение для этого случая.

Заранее благодарен!

ответ

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.

Надеюсь, это поможет.

+0

thatnks seavers для ответа .. на самом деле это сработало, код, который я написал выше .. Я не имел дополнительной страницы просмотра, я хотел, чтобы эти данные попадали на эту страницу просмотра. И у меня была ошибка типа. Поэтому приведенный выше код верен. Но спасибо!!! – mrGott

 Смежные вопросы

  • Нет связанных вопросов^_^