lithium\data\source\Database::on PHP Method

on() public method

Build the ON constraints from a Relationship instance
public on ( object $rel, $aliasFrom = null, $aliasTo = null, array $constraints = [] ) : array
$rel object A Relationship instance
$constraints array Array of additionnal $constraints.
return array A constraints array.
    public function on($rel, $aliasFrom = null, $aliasTo = null, $constraints = array())
    {
        $model = $rel->from();
        $aliasFrom = $aliasFrom ?: $model::meta('name');
        $aliasTo = $aliasTo ?: $rel->name();
        $keyConstraints = array();
        foreach ($rel->key() as $from => $to) {
            $keyConstraints["{$aliasFrom}.{$from}"] = "{$aliasTo}.{$to}";
        }
        $mapAlias = array($model::meta('name') => $aliasFrom, $rel->name() => $aliasTo);
        $relConstraints = $this->_on((array) $rel->constraints(), $aliasFrom, $aliasTo, $mapAlias);
        $constraints = $this->_on($constraints, $aliasFrom, $aliasTo, array());
        return $constraints + $relConstraints + $keyConstraints;
    }