如何为fuelphp ORM关系设置动态条件

Posted

技术标签:

【中文标题】如何为fuelphp ORM关系设置动态条件【英文标题】:How to set dynamic condition for fuelphp ORM relation 【发布时间】:2015-11-10 06:00:38 【问题描述】:

我有一个使用fuelphp的ORM创建的多对多关系。

关系的伪代码如下所示

class MyModel extends Model

protected static $_many_many = [
    'relatedmodel' => [
        'conditions' => [
            'where' => [
                    ['ctime', '>', DB::expr(('now() - interval 1 week'))],
                ],
            ],
        ]
    ];

这里的想法是,我只想让关系查看上周创建的较新的相关模型。

但是,由于 php 语言的限制,这显然不起作用 - 不允许将表达式作为字段默认值。

尽管有这种限制,我如何才能在 FuelPHP 中获得所需的行为?

【问题讨论】:

AFAIK,其中关系中的条件实际上在 JOIN 中用作 ON 条件。您是否尝试过将其放入查询中的“真实” where 条件中?即使您想让它成为所有情况的永久条件:您可以覆盖模型中的query 方法,以便使用该条件执行每个查询。 【参考方案1】:

这里语言限制的解决方法是使用 Fuel 自动加载器的public static _init() 函数来设置值。当自动加载器加载类时,它会自动调用。

http://fuelphp.com/docs/general/classes.html#/init_method

【讨论】:

以上是关于如何为fuelphp ORM关系设置动态条件的主要内容,如果未能解决你的问题,请参考以下文章

仅缓存 FuelPHP ORM 结果中的关系数据

Fuelphp属于关系,不同的模型

如何为文本字段设置条件。文本?

如何为多个动态 div 设置多个 Cookie

Core Data 如何为关系设置值?

如何为 Android 动态壁纸创建设置活动