我在FuelPHP中有很多关系,如下所示:
protected static $_many_many = array(
'members' => array(
'key_from' => 'team_id',
'key_through_from' => 'team_id',
'table_through' => 'user_has_team',
'key_through_to' => 'user_id',
'model_to' => 'Model_User',
'key_to' => 'id',
)
);
但我想知道你是否可以在关系中有一个where子句。例如:
protected static $_many_many = array(
'members' => array(
'key_from' => 'team_id',
'key_through_from' => 'team_id',
'table_through' => 'user_has_team',
'key_through_to' => 'user_id',
'model_to' => 'Model_User',
'key_to' => 'id',
'where' => array('account_status' => 'active')
)
);
因此它只返回其account_status设置为“active”的Model_User对象。我知道这有点推动它但是很多其他的燃料很棒,所以我可能有办法做到这一点。
显然你可以通过查询来做到这一点,但我想知道是否有办法使用$ _many_many
答案 0 :(得分:1)
public function action_your_function_where_you_call_the_user_model()
{
$user = Model_User::find()->where('account_status', 'active')->get();
}
答案 1 :(得分:0)
派对迟到了,但是对于那些在搜索中点击这个的人:
您可以在关系定义上定义条件。目前'where'和'order_by'条款得到支持。
此条件是永久性的,您无法打开或关闭它们。因此,如果您需要对相关模型进行完全访问和过滤访问,则必须定义两个关系。
有关详细信息,请参阅http://fuelphp.com/docs/packages/orm/relations/intro.html#usage_rel_conditions。