Jump to content

AtkOneToOneRelation

From NusaATK
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

 public static function meta(atkMetaPolicy $policy) {
     $policy->hasOne('address');
 }