1

我在 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 设置为“活动”的 Model_User 对象。我知道这有点推动它,但燃料在许多其他方面都很棒,所以我认为可能有办法做到这一点。

显然你可以通过查询来做到这一点,但我想知道是否有办法使用 $_many_many

4

2 回答 2

1
public function action_your_function_where_you_call_the_user_model()
{

    $user = Model_User::find()->where('account_status', 'active')->get();   

}
于 2012-11-10T11:55:42.703 回答
0

派对迟到了,但是对于在搜索中点击这个的人来说:

您可以在关系定义上定义条件。目前支持“where”和“order_by”子句。

这种情况是永久性的,您无法打开或关闭它们。因此,如果您需要对相关模型的完全访问和过滤访问,则必须定义两个关系。

有关更多信息,请参阅http://fuelphp.com/docs/packages/orm/relations/intro.html#usage_rel_conditions

于 2013-01-27T00:57:26.413 回答