Jump to content

AtkOneToOneRelation: Difference between revisions

From NusaATK
No edit summary
No edit summary
Line 24: Line 24:


Referential key a_id is in the same node, so this is the slave-configuration.
Referential key a_id is in the same node, so this is the slave-configuration.
=== Example (atkMetaNode) ===
An employee has one address
  $policy->hasOne('address');


[[Category:Relations]]
[[Category:Relations]]

Revision as of 09:25, 4 October 2010

File:AtkOneToOneRelation.png
atkOneToOneRelation screenshot

An atkOneToOneRelation defines a relation between two tables where there is one record in the first table that belongs to one record in the second table.

The atkOneToOneRelation supports two configurations: master mode and slave mode. The mode to use is detected automatically based on the value of the $refKey parameter.

function atkOneToOneRelation($name, $destination, $refKey="", $flags=0)
  • $name: The unique name of the attribute.
  • $destination: the destination node (in module.nodename notation)
  • $refKey: foreign-key field (master mode) or empty (slave mode)

Master mode example

The node in which the relation is implemented, is considered the master (code is in node A). And the referential key pointing to the master record (a_id) is in the destination node (node B).

Referential key a_id is in the other node, so this is the master-configuration.

Slave mode example

The node in which the relation is implemented (code is in node B), is considered the child. And the referential key pointing to the master record (a_id) is in the current node (node B).

Referential key a_id is in the same node, so this is the slave-configuration.

Example (atkMetaNode)

An employee has one address

 $policy->hasOne('address');