是否可以與2個表進行多對多的關係? 可以說我有以下結構:hasManyTo與兩個表的關係
<?php
use Phalcon\Mvc\Model;
/**
entity
-id
-name
-sub_group_id
*/
class Entity extends Model {
public $id;
public $name;
public $sub_group_id;
public function initialize()
{
$this->belongsTo('sub_group_id', 'SubGroup', 'id', ['alias' => 'subgroup']);
}
}
/**
sub_group
-id
-name
-group_id
*/
class SubGroup extends Model {
public $id;
public $name;
public $group_id;
public function initialize()
{
$this->belongsTo('group_id', 'Group', 'id', ['alias' => 'group']);
$this->hasMany('id', 'Entity', 'sub_group_id', ['alias' => 'entities']);
}
}
/**
group
-id
-name
*/
class Group extends Model {
public $id;
public $name;
public function initialize()
{
$this->hasMany('id', 'SubGroup', 'group_id', ['alias' => 'subgroups']);
}
}
因此集團將擁有「的hasMany」關係到子組。 子組將與實體具有「hasMany」關係。
要想從組實體使用:
<?php
$entities = [];
$group = Group::findFirst();
foreach ($group->subgroups as $subgroup){
$entities = array_merge($entities, $subgroup->entities->toArray());
}
我應該改變什麼關係,可以說 小組將有「hasManyXXX」相對於實體。
爲了得到以下結果:
<?php
$entities = $group->subgroups->entities->toArray();
,並有可能呢?
距離看一眼,你可能有興趣在嵌套集你們所做的工作。不是100%,它適合你的使用,但只是從你的代碼,它看起來更合適https://github.com/phalcon/incubator/tree/master/Library/Phalcon/Mvc/Model/Behavior#selecting-from-a - 樹 –
@ david.duncan,看起來不錯。我肯定會在未來深入瞭解 - 謝謝。 –