如何为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关系设置动态条件的主要内容,如果未能解决你的问题,请参考以下文章