Phalcon ORM: hasOne (самостоятельно)

У меня есть таблица собственных ссылок в моей БД, и я хотел бы использовать ее как объект, используя Phalcon ORM. Отношение hasOne () работает при соединении с другими таблицами, но, кажется, не работает при попытке сослаться на себя. При попытке var_dump($treeNode->TreeNodes) это ничего не возвращает. Проверка объекта просто возвращает «Невозможно оценить выражение» с помощью XDebug.

Кто-нибудь знает, как это сделать в Phalcon?

public function organisationAction()
{
$organisation = new Organisations();
$organisation->setConnectionService(Registry::setConnection(Connections::UK_Connection));
$organisation = $organisation->findFirst(123);
$treeNodes = $organisation->TreeNodes;
foreach($treeNodes as $treeNode){
var_dump($treeNode->TreeNodes);
}
}

class TreeNodes extends Model
{
public $node_id;
public $tree_id;
public $tree_parent_node_id;
public $tree_level_id;
public $node_desc;

public function getSource()
{
return "TreeNodes";
}

public function initialize()
{
$this->setSource("TreeNodes");
$this->hasOne(
'tree_parent_node_id',
'TreeNodes',
'node_id',
array(
'reusable' => true
)
);
}
}

1

Решение

Простой способ добиться этого — определить дополнительные отношения

$this->belongsTo('tree_parent_node_id', // which column
'TreeNodes', // referenced table
'id', // referenced table column
['alias' => 'parentNode']);

Чтобы избежать путаницы, вы можете дать этому отношению псевдоним. ['alias' => 'parentNode']

Теперь вы сможете получить доступ к связанному родительскому узлу, используя

$treeNode->getRelated('parentNode');

Больше информации о Псевдонимы Phalcon.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]