Actions

API15

Difference between revisions of "JTable::bind Example001"

From Joomla! Documentation

(Remove text moved to The API15 pages and leave this as an example page)
m (Wilsonge moved page JTable/bind to API15:JTable::bind Example001: Move to new page)
 
(2 intermediate revisions by one user not shown)
Line 1: Line 1:
===Example===
 
 
In this example the class '''TableGreeting''' corresponds to a table called 'jos_greeting' in the Joomla database.
 
In this example the class '''TableGreeting''' corresponds to a table called 'jos_greeting' in the Joomla database.
 
<source lang="php">
 
<source lang="php">
Line 54: Line 53:
 
* 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).
 
* 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).
  
<noinclude>[[Category:CodeExample]][[Category:MethodExample]][[Category:JTable]]</noinclude>
+
<noinclude>[[Category:CodeExample]][[Category:MethodExample]][[Category:JTable]][[Category:bind]]</noinclude>

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).