是否可以选择向Phalcon向导功能hasManyToMany添加其他条件?我已经检查了phalcon docs但是他们没有列出hasManyToMany的所有可能选项(仅列出了别名和foreginKey)。 如果无法使用hasManyToMany,则可以使用任何其他Phalcon选项 - 例如。检索所有然后过滤一些模型加载事件?
简单示例: 我有3个表组,关系和用户,并希望使用Relation表在用户模型中创建两个属性 - active_groups和inactive_groups。
代码:
class GroupModel extends Model {
public $id;
public $name;
}
class RelationModel extends Model {
public $id;
public $related_id_one;
public $related_id_two;
public $active;
}
class UserModel extends Model {
public function initialize() {
$this->hasManyToMany(
"id",
"RelationModel",
"related_id_one",
"related_id_two",
"GroupModel",
"id",
array( 'alias' => 'active_groups',
'conditions' => 'RelationModel.active = true')
);
$this->hasManyToMany(
"id",
"RelationModel",
"related_id_one",
"related_id_two",
"GroupModel",
"id",
array( 'alias' => 'inactive_groups',
'conditions' => 'RelationModel.active = false')
);
}
}
TNX!
答案 0 :(得分:2)
你可以这样做。 BTW并不完全确定这段代码是否正常运行,但你希望这个想法得到了解。
我不知道phalcon是否有条件/ where选项
class GroupModel extends Model {
public $id;
public $name;
}
class RelationModel extends Model {
public $id;
public $related_id_one;
public $related_id_two;
public $active;
}
class UserModel extends Model {
public function initialize() {
$this->hasManyToMany(
"id",
"RelationModel",
"related_id_one",
"related_id_two",
"GroupModel",
"id",
array( 'alias' => 'groups')
);
}
public function getActiveGroups() {
return $this->getGroups('RelationModel.active = true');
}
public function getInactiveGroups() {
return $this->getGroups('RelationModel.inactive = false');
}
}