PRADO Component Framework for PHP 5
  • Home
  • About
  • Testimonials
  • Demos
  • Download
  • Documentation
  • Forum
  • Development
  • Tutorials
  • Class Docs
  • API Manual
  • Wiki

Packages

  • None
  • System
    • Caching
    • Collections
    • Data
      • ActiveRecord
        • Relations
        • Scaffold
          • InputBuilder
      • Commom
        • Sqlite
      • Common
        • Mssql
        • Mysql
        • Oracle
        • Pgsql
        • Sqlite
      • DataGateway
      • SqlMap
        • Configuration
        • Statements
    • Exceptions
    • I18N
    • IO
    • Security
    • Util
    • Web
      • Javascripts
      • Services
      • UI
        • ActiveControls
        • WebControls
    • Xml
  • Wsat
    • pages
  • Overview
  • Package
  • Class
  • Tree
  • Deprecated
  • Todo

Class TActiveRecordHasMany

Implements TActiveRecord::HAS_MANY relationship between the source object having zero or more foreign objects. 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
{
    const TABLE='team';
    public $name; //primary key
    public $location;

public $players=array(); //list of players

    public static $RELATIONS=array
    (
        'players' => array(self::HAS_MANY, 'PlayerRecord')
    );

   public static function finder($className=__CLASS__)
   {
           return parent::finder($className);
   }
}
class PlayerRecord extends TActiveRecord
{
    // see TActiveRecordBelongsTo for detailed definition
}

The static $RELATIONS property of TeamRecord defines that the property $players has many PlayerRecords.

The players list may be fetched as follows.

$team = TeamRecord::finder()->with_players()->findAll();

The method with_xxx() (where xxx is the relationship property name, in this case, players) fetchs the corresponding PlayerRecords 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_players('age < ?', 35).

TActiveRecordRelation
Extended by TActiveRecordHasMany
Package: System\Data\ActiveRecord\Relations
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/TActiveRecordHasMany.php
Methods summary
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.

Get the foreign key index values from the results and make calls to the database to find the corresponding foreign objects.

Parameters

$results
array
original results.
public array
# getRelationForeignKeys( )

Returns

array
foreign key field names as key and object properties as value.

Since

3.1.2
public boolean
# updateAssociatedRecords( )

Updates the associated foreign objects.

Updates the associated foreign objects.

Returns

boolean
true if all update are success (including if no update was required), false otherwise .
Methods inherited from TActiveRecordRelation
__call(), __construct(), fetchResultsInto(), findForeignKeys(), findForeignObjects(), getContext(), getCriteria(), getIndexValues(), getObjectHash(), getSourceRecord(), populateResult(), setObjectProperty(), setResultCollection()
Terms of Service | Contact Us
PRADO v3.2.4 API Manual API documentation generated by ApiGen 2.8.0
Copyright © 2006-2014 by the PRADO Group.
Powered by PRADO