- Home
- About
- Testimonials
- Demos
- Download
- Documentation
- Blogs
- Forum
- Support

Packages: default System System.Caching System.Collections System.Data System.Data.ActiveRecord System.Data.ActiveRecord.Relations System.Data.ActiveRecord.Scaffold System.Data.ActiveReecord.Scaffold.InputBuilder System.Data.Commom.Sqlite System.Data.Common System.Data.Common.Mssql System.Data.Common.Mysql System.Data.Common.Oracle System.Data.Common.Pgsql System.Data.Common.Sqlite System.Data.DataGateway System.Data.SqlMap System.Data.SqlMap.Configuration System.Data.SqlMap.Statements System.Exceptions System.I18N System.IO System.Security System.Util System.Web System.Web.Services System.Web.UI System.Web.UI.ActiveControls System.Web.UI.WebControls System.Web.UI.WebControls.assets System.Xml Classes: TActiveRecordBelongsTo TActiveRecordHasMany TActiveRecordHasManyAssociation TActiveRecordHasOne TActiveRecordRelation TActiveRecordRelationContext |
Keyword
# Class TActiveRecordBelongsTo
    TActiveRecordRelation
       |
       --TActiveRecordBelongsTo
Implements the foreign key relationship (TActiveRecord::BELONGS_TO) between the source objects and the related foreign object. Consider the entity relationship between a Team and a Player.

     +------+            +--------+
     | Team | 1 <----- * | Player |
     +------+            +--------+
Where one team may have 0 or more players and each player belongs to only one team. We may model Team-Player object relationship as active record as follows.

     class TeamRecord extends TActiveRecord
     {
         // see TActiveRecordHasMany for detailed definition.
      }
     class PlayerRecord extends TActiveRecord
     {
         const TABLE='player';
         public $player_id; //primary key
              public $team_name; //foreign key player.team_name <-> team.name
                    public $age;
         public $team; //foreign object TeamRecord

         public static $RELATIONS = array
         (
                'team' => array(self::BELONGS_TO, 'TeamRecord')
         );

           public static function finder($className=__CLASS__)
           {
               return parent::finder($className);
           }
     }
The static <tt>$RELATIONS</tt> property of PlayerRecord defines that the property <tt>$team</tt> belongs to a <tt>TeamRecord</tt>. The team object may be fetched as follows.

     $players = PlayerRecord::finder()->with_team()->findAll();
The method <tt>with_xxx()</tt> (where <tt>xxx</tt> is the relationship property name, in this case, <tt>team</tt>) fetchs the corresponding TeamRecords using a second query (not by using a join). The <tt>with_xxx()</tt> accepts the same arguments as other finder methods of TActiveRecord, e.g. <tt>with_team('location = ?', 'Madrid')</tt>. Since: 3.1 Author: Wei Zhuo <weizho[at]gmail[dot]com>
Method Summary
protected void | collectForeignObjects ( array &$results) Get the foreign key index values from the results and make calls to the database to find the corresponding foreign objects.
array | getRelationForeignKeys ()
protected void | setObjectProperty ( TActiveRecord $source, array $properties, mixed &$collections) Sets the foreign objects to the given property on the source object.
boolean | updateAssociatedRecords () Updates the source object first.
Methods Inherited From TActiveRecordRelation
TActiveRecordRelation::fetchResultsInto(), TActiveRecordRelation::findForeignKeys(), TActiveRecordRelation::findForeignObjects(), TActiveRecordRelation::getContext(), TActiveRecordRelation::getCriteria(), TActiveRecordRelation::getIndexValues(), TActiveRecordRelation::getObjectHash(), TActiveRecordRelation::getSourceRecord(), TActiveRecordRelation::populateResult(), TActiveRecordRelation::setObjectProperty(), TActiveRecordRelation::setResultCollection(), TActiveRecordRelation::__call()
Method Details
## collectForeignObjects
protected void collectForeignObjects | (array &$results )
Get the foreign key index values from the results and make calls to the database to find the corresponding foreign objects.
Input
array | &$results | original results.
Output
Exception
## getRelationForeignKeys
public array getRelationForeignKeys | ()
Output
array | foreign key field names as key and object properties as value.
Exception
## setObjectProperty
protected void setObjectProperty | (TActiveRecord $source , array $properties , mixed &$collections )
Sets the foreign objects to the given property on the source object.
Input
TActiveRecord | $source | source object.
array | $properties | foreign objects.
mixed | &$collections |
Output
Exception
## updateAssociatedRecords
public boolean updateAssociatedRecords | ()
Updates the source object first.
Output
boolean | true if all update are success (including if no update was required), false otherwise .
Exception