User Rating: 2 / 5

Star ActiveStar ActiveStar InactiveStar InactiveStar Inactive

JTable - has created a Class that allows you to access and manipulate data in a database table easier. For fundamental processes such as the retrieval of records. Emptying the table and Reducing the work in the Model into it. for use JTable in the Component of us also have the controllers models views must create the tables added for storing class files of JTable named class is similar to the naming controllers models views. Component is a name followed by the word Table and closed with a filename such as tables, create a file in a folder com_helloworld. hello.php HelloworldTableHello and class names are assigned to the class JTable extends and construct the building




inside the hello.php file insert the code below


class HelloworldTableHello extends JTable
public function __construct(&$db)
        parent::__construct('#__tablename', 'id', $db);


Now we need to enhance and adjust the codes on Controllers folder


In building a controller would normally extends from class JControllerLegacy. In fact, we also have a class that extends another 2 class. JControllerAdmin controller is ideal for managing list of data items.


If we select extends from the top of a class, a function that allows you to create custom diminished. Save time coding


Sample controller (can add, edit) using a 2 function


Modify the codes on the file php under controllers folder


public function display($cachable = false, $urlparams = array())
         $task = JRequest::getVar('task');
      if($task == 'add' || $task == 'edit') {
              $view = $this->getView();
            $view->setModel($this->getModel(), true);
    } else {
            $view = $this->getView(ucfirst($this->controller).'s');
            $view->setModel($this->getModel(ucfirst($this->controller).'s'), true);


 for recording


public function Save () 
// prevent attacks from outside your system. 
JSession :: CheckToken ()  or die( JText :: _ ( 'JINVALID_TOKEN' )); 

// run the Object Model  
$model = $this->getModel();

// a value stored in variable form. $ Data 
$data  = $this->input->post->get('jform', array(), 'array');
 if (!$model->save($data))

// if he fails the error 
$this->setError(JText::sprintf('Failed', $model->getError()));
$this->setMessage($this->getError(), 'error');

// moved to a statement. 
 $this->setRedirect(JRoute::_('index.php?option=' . $this->option . '&c=example'
          return false ; 

     // message if He achieved 

    // move to the registration statement. 
    JRoute::_('index.php?option=' . $this->option . '&c=example'
return true;


the creation of a model usually created 2 model. First it retrieves the page from the list extends class JModelList. The second extends class information in the form of JModelAdmin JModelForm JModelLegacy which normally takes the form of JModelLegacy but if we had to switch to using xml JModelForm but from those used JModelAdmin be super useful.


Modify the php file under the Models folder


<? PHP defined 
( '_JEXEC' )  or Die (); 
Class ExampleModelExample extends JModelAdmin 

// extract data from xml file to create a form. 
public function getForm($data = array(), $loadData = true) 
$form = $this->loadForm('com_example.example', 'example', array('control' => 'jform', 'load_data' => $loadData));
return $form;

// keep critical values ​​for the lead. In another function, such as the id of the table. 
protected function populateState()
  $cid = JRequest::getVar('cid');
  $this->setState('id', $cid[0]);

// out the chart to the form. 
protected function loadFormData()
      $data = JFactory::getApplication()->getUserState('com_example.edit.example', array());
if (empty($data)) {
$data = $this->getItem();
return $data;

 // call the JTable Object  
public function getTable($name = 'Example', $prefix = 'ExampleTable', $options = array()) 
    return parent::getTable($name, $prefix, $options);