Class \Prado\Data\ActiveRecord\Relations\TActiveRecordBelongsTo
Implements the foreign key relationship (TActiveRecord::BELONGS_TO) between
the source objects and the related foreign object. Consider the
<b>entity</b> 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').
Class hierarchy
- \Prado\Data\ActiveRecord\Relations\TActiveRecordBelongsTo
- \Prado\Data\ActiveRecord\Relations\TActiveRecordRelation
Since: 3.1
public
|
|
public
|
|
protected
|
collectForeignObjects(array<string|int, mixed> &$results) : mixed
Get the foreign key index values from the results and make calls to the
database to find the corresponding foreign objects.
|
protected
|
setObjectProperty(TActiveRecord $source, array<string|int, mixed> $properties, array<string|int, mixed> &$collections) : mixed
Sets the foreign objects to the given property on the source object.
|