Difference between revisions of "JTable::bind Example001"

From Joomla! Documentation

m (Wilsonge moved page JTable/bind to API15:JTable::bind Example001: Move to new page)
(No difference)

Latest revision as of 03:00, 3 July 2013

Replacement filing cabinet.png
This Namespace has been archived - Please Do Not Edit or Create Pages in this namespace. Pages contain information for a Joomla! version which is no longer supported. It exists only as a historical reference, will not be improved and its content may be incomplete.

In this example the class TableGreeting corresponds to a table called 'jos_greeting' in the Joomla database.

class TableGreeting extends JTable
   var $id       = null;
   var $greeting = null;
   var $language = null;
   var $_code    = null;
   function __construct( &$db )
	parent::__construct( '#__greeting', 'id', $db );

Now, in the model, create an array of fields/properties to be updated and bind it to the table object:

// Create the array of new/amended fields/properties.
$from = array( 'id'        => 6,
               'greeting'  => 'Nǐ hǎo',
               'language'  => 'Chinese',
               'continent' => 'Asia'
               '_code'     => 'ASC012'
// Specify which columns are to be ignored. This can be a string or an array.
$ignore = 'id';
// Get the table object from the model.
$table = $this->getTable( 'greeting' );
// Bind the array to the table object.
$table->bind( $from, $ignore );
// Show the result of the bind for illustration purposes only.
echo '<pre>';
print_r( $table );
echo '</pre>';

This would result in the following output:

TableGreeting Object
    [id] => 
    [greeting] => Nǐ hǎo
    [language] => Chinese
    [_code] =>

Notice that

  • the 'continent' array entry has not been bound to the table object, since 'continent' is not a property of the object.
  • the 'id' array entry has not been bound to the table object either, since 'id' was on the ignore list.
  • the '_code' array entry has not been bound to the table because it is a private property of the table object (its name begins with an underscore).