Php 在条令模型中设置所需值

Php 在条令模型中设置所需值,php,sql,doctrine,doctrine-1.2,Php,Sql,Doctrine,Doctrine 1.2,是否可以在条令模型中设置约束,以便使用该模型的所有查询都包含此需求?例如,如果我有一个汽车模型,我想确保使用该模型检索的所有结果在数据库中设置了active=1。我可以在每个查询中定义它,但似乎有更好的方法 干杯 我会在query->andWhere('active=?',1)中这样做,但如果你想用这种“巧妙的方式”来做,你总是可以建造自己的水合器。我会在query->andWhere('active=?',1)中这样做,但如果你想用这种“巧妙的方式”,您始终可以构建自己的查询器。以下是对您的问

是否可以在条令模型中设置约束,以便使用该模型的所有查询都包含此需求?例如,如果我有一个汽车模型,我想确保使用该模型检索的所有结果在数据库中设置了
active=1
。我可以在每个查询中定义它,但似乎有更好的方法


干杯

我会在query->andWhere('active=?',1)中这样做,但如果你想用这种“巧妙的方式”来做,你总是可以建造自己的水合器。

我会在query->andWhere('active=?',1)中这样做,但如果你想用这种“巧妙的方式”,您始终可以构建自己的查询器。

以下是对您的问题的答案:对条令查询对象进行子类化


以下是对您的问题的答案:对条令查询对象进行子类化


我会充分利用模型中令人惊叹的前后挂钩

例如:

class Model_Car extends Model_Base_Car
{
    public function preDqlSelect(Doctrine_Event $event)
    {
        $event->getQuery()->addWhere("active = ?", 1);
    }
}
虽然我没有测试这个,但它应该可以工作。在过去,我经常使用前后挂钩来让我的生活更轻松。例如,我有一个模型希望在每次插入和更新时保存远程地址,因此我做了以下操作以简化我的生活:

class Model_Example extends Model_Base_Example
{
    public function preInsert(Doctrine_Event $event)
    {
        $this->created_ip = $this->_getRemoteIp();
    }

    public function preUpdate(Doctrine_Event $event)
    {
        $this->updated_ip = $this->_getRemoteIp();
    }

    protected function _getRemoteIp()
    {
        return ip2long($_SERVER['REMOTE_ADDR']);
    }
}

希望这有帮助

我会利用他们在模型中惊人的前后挂钩

例如:

class Model_Car extends Model_Base_Car
{
    public function preDqlSelect(Doctrine_Event $event)
    {
        $event->getQuery()->addWhere("active = ?", 1);
    }
}
虽然我没有测试这个,但它应该可以工作。在过去,我经常使用前后挂钩来让我的生活更轻松。例如,我有一个模型希望在每次插入和更新时保存远程地址,因此我做了以下操作以简化我的生活:

class Model_Example extends Model_Base_Example
{
    public function preInsert(Doctrine_Event $event)
    {
        $this->created_ip = $this->_getRemoteIp();
    }

    public function preUpdate(Doctrine_Event $event)
    {
        $this->updated_ip = $this->_getRemoteIp();
    }

    protected function _getRemoteIp()
    {
        return ip2long($_SERVER['REMOTE_ADDR']);
    }
}

希望这有帮助

好问题!我也想知道这个问题的答案。在我的情况下,我总是希望用户仍然活跃。好问题!我也想知道这个问题的答案。在我的情况下,我总是希望用户仍然处于活动状态。