Class 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 $RELATIONS property of PlayerRecord defines that the property $team belongs to a TeamRecord.
The team object may be fetched as follows.
$players = PlayerRecord::finder()->with_team()->findAll();
The method with_xxx() (where xxx is the relationship property name, in this case, team) fetchs the corresponding TeamRecords using a second query (not by using a join). The with_xxx() accepts the same arguments as other finder methods of TActiveRecord, e.g. with_team('location = ?', 'Madrid').
- TActiveRecordRelation
-
TActiveRecordBelongsTo
Copyright: Copyright © 2005-2014 PradoSoft
License: http://www.pradosoft.com/license/
Author: Wei Zhuo <weizho[at]gmail[dot]com>
Version: $Id$
Since: 3.1
Located at Data/ActiveRecord/Relations/TActiveRecordBelongsTo.php
protected
|
#
collectForeignObjects( array & $results )
Get the foreign key index values from the results and make calls to the database to find the corresponding foreign objects. |
public
array
|
|
protected
|
#
setObjectProperty(
Sets the foreign objects to the given property on the source object. |
public
boolean
|