AbstractRelationship
   |
   --HasMany

Child classes:

HasOne
One-to-one relationship.

Class Details

One-to-many relationship.

 # Table: people
 # Primary key: id
 # Foreign key: school_id
 class Person extends ActiveRecord\Model {}

 # Table: schools
 # Primary key: id
 class School extends ActiveRecord\Model {
   static $has_many = array(
     array('people')
   );
 });

	

Example using options:

 class Payment extends ActiveRecord\Model {
   static $belongs_to = array(
     array('person'),
     array('order')
   );
 }

 class Order extends ActiveRecord\Model {
   static $has_many = array(
     array('people',
           'through'    => 'payments',
           'select'     => 'people.*, payments.amount',
           'conditions' => 'payments.amount < 200')
     );
 }

	


Class Variables

protected mixed $primary_key
protected static array $valid_association_options = array('primary_key', 'order', 'group', 'having', 'limit', 'offset', 'through', 'source')

Valid options to use for a HasMany relationship.

  • limit/offset: limit the number of records
  • primary_key: name of the primary_key of the association (defaults to "id")
  • group: GROUP BY clause
  • order: ORDER BY clause
  • through: name of a model


Class Methods

public HasMany __construct ( [ array $options = array()] )

Constructs a HasMany relationship.

  • array $options - Options for the association
public void build_association ( Model $model , [ $attributes = array()] )
  • Model $model -
  • $attributes -
public void create_association ( Model $model , [ $attributes = array()] )
  • Model $model -
  • $attributes -
public void load ( Model $model )
public void load_eagerly ( [ $models = array()] , [ $attributes = array()] , $includes , Table $table )
  • $models -
  • $attributes -
  • $includes -
  • Table $table -
protected void set_keys ( $model_class_name , [ $override = false] )
  • $model_class_name -
  • $override -