Как я могу загрузить модель в Joomla? - PullRequest
0 голосов
/ 22 марта 2011

Это мой контроллер

// No direct access

defined( '_JEXEC' ) or die( 'Restricted access' );

jimport('joomla.application.component.controller');

/**
 * Hello World Component Controller
 *
 * @package    Joomla.Tutorials
 * @subpackage Components
 */
class HelloController extends JController
{
    /**
     * Method to display the view
     *
     * @access    public
     */

    function __construct($default = array())
    {
        parent::__construct($default);

        // Register Extra tasks
        $this->registerTask( 'detail'  ,        'display' );
    }
    function display()
    {
     switch($this->getTask())
      {
        case 'detail'     :
        {
             JRequest::setVar( 'view'  , 'new');

        // Checkout the weblink
             $model = $this->getModel('hello');

        } break;

    }
    parent::display();
    }


}

это мой view.html.php

class HelloViewNew extends JView
{
    function display($tpl = null)
    {   
    global $mainframe;

    $db     =& JFactory::getDBO();

    $model  =& $this->getModel('hello');

    $items      = & $model->getdetail();

    $this->assignRef( 'items', $items );

    parent::display($tpl);
    }

}

а это моя модель

defined( '_JEXEC' ) or die( 'Restricted access' );

jimport( 'joomla.application.component.model' );

/**
 * Hello Model
 *
 * @package    Joomla.Tutorials
 * @subpackage Components
 */
class HelloModelHello extends JModel
{
    /**
    * Gets the greeting
    * @return string The greeting to be displayed to the user
    */
    var $_data;

    /**
     * Returns the query
     * @return string The query to be used to retrieve the rows from the database
     */
    function _buildQuery()
    {
    $query = ' SELECT * '
        . ' FROM #__hello WHERE published = 1'
    ;

    return $query;
    }

    /**
     * Retrieves the hello data
     * @return array Array of objects containing the data from the database
     */
    function getData()
    {
    // Lets load the data if it doesn't already exist
    if (empty( $this->_data ))
    {
        $query = $this->_buildQuery();
        $this->_data = $this->_getList( $query );
    }
    //echo "<pre>"; print_r($this->_data); exit;
    return $this->_data;
    }
    function detail()
    {   
    echo "this is test"; exit;
    }

}

Мой вопрос: как я могу получить эту функцию детализации из базы данных, она не работает для меня?

Ответы [ 2 ]

1 голос
/ 22 марта 2011

на вашей модели, у вас есть функция: function detail(), Но вы пытались вызвать функцию на экране с помощью: $items = & $model->getdetail(); Помните, что ваша функция detail() НЕ getdetail(). Итак, звоните с:

$items = & $model->detail();

Я думаю, это твоя единственная ошибка, удачи

0 голосов
/ 22 марта 2011

Вы должны использовать это в контроллере

$view = $this->getView();
$view->setModel($this->getModel());

тогда вы можете использовать $this->getModel() в поле зрения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...