PHP MVC в компоненте Joomla - PullRequest
       0

PHP MVC в компоненте Joomla

0 голосов
/ 06 декабря 2011

Я работаю над предварительно созданным компонентом Joomla, который использует архитектуру MVC, Моя проблема такова:

В моделях у меня есть файл .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();
}

, но в представлении я все еще не могу получить доступ к извлеченным данным из вышеуказанной новой функции, но более старые функции являются рабочим свойством

Ответы [ 2 ]

1 голос
/ 06 декабря 2011

Не проблема ли в том, что вы пытаетесь получить данные дважды?

С помощью этой строки вы извлекаете ее и сохраняете локально в переменной _data класса.

$this->_data = $this->_db->loadObject();

С помощью этой строки вы пытаетесь получить данные снова, но вы уже получили их (если был только один результат).Следовательно, вы, вероятно, возвращаете ложное значение

return $this->_db->loadObjectList();

. Вы должны , вероятно, вернуть $ this -> _ данные в конце функции - при условии, что исходная функция, которую вы копируете, действительно функционирует.

1 голос
/ 06 декабря 2011

Это не фактический ответ, а ответ на комментарий.

Сначала в вашем файле view.html.php вам нужно будет извлечь данные из модели.

$attendance_data = & $this->get('AttendenceData');

Это даст вам список объектов при возврате из функции getAttendenceData ().

Теперь назначьте его переменной представления (скажем, data).

$this->assignRef('data', $attendance_data);

Теперь вы можете получить доступ к этим данным в вашем представлении:

foreach($data as $r)
{
    echo $r->id;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...