lithium\data\Model::_relations()
This method automagically bind in the fly unloaded relations.
Parameters
-
$type
A
type of model relation.
-
$name
A
relation name.
Returns
Anarray of relation instances or an instance of relation.
Source
protected static function _relations($type = null, $name = null) {
$self = static::object();
if ($name) {
if (isset($self->_relationsToLoad[$name])) {
$t = $self->_relationsToLoad[$name];
unset($self->_relationsToLoad[$name]);
return static::bind($t, $name, (array) $self->{$t}[$name]);
}
return isset($self->_relations[$name]) ? $self->_relations[$name] : null;
}
if (!$type) {
foreach ($self->_relationsToLoad as $name => $t) {
static::bind($t, $name, (array) $self->{$t}[$name]);
}
$self->_relationsToLoad = [];
return $self->_relations;
}
foreach ($self->_relationsToLoad as $name => $t) {
if ($type === $t) {
static::bind($t, $name, (array) $self->{$t}[$name]);
unset($self->_relationsToLoad[$name]);
}
}
return array_filter($self->_relations, function($i) use ($type) {
return $i->data('type') === $type;
});
}