代码之家  ›  专栏  ›  技术社区  ›  RaScoop

两个模型使用相同的表,但在cakephp中有条件

  •  2
  • RaScoop  · 技术社区  · 14 年前

    我有两个模型要保存在同一个表中。 例如,我有一个状态模型和一个工资计划模型都应该保存在状态表中。但在检索状态模型时,应仅返回付款为“否”的记录,而付款计划仅返回付款为“是”的记录。 我将在每个模型中保存一个before,以确保将正确的付款值保存到表中。 我的问题是,如何将从模型上的表中进行的检索限制为上面解释的约束,而不必在每次find()操作中都进行检索?

    我想你还没弄明白,我是个呆头呆脑的笨蛋。

    1 回复  |  直到 12 年前
        1
  •  1
  •   geon    14 年前

    应该可以在模型的find()方法中实现这一点:

    public function find($type, $options = array()) {
    
        // Make sure there is a 'conditions' array.
        if(!isset($options['conditions']))
            $options['conditions'] = array();
    
        // Overwrite conditions in $options with your automatic conditions.
        $options['conditions'] = array_merge(
            $options['conditions'],
            array('payment' => 'yes')
        );
    
        // Just pass them to the parent implementation.
        return parent::find($type, $options);
    }
    

    编辑:

    要遵循cakephp建议,可能应该在函数beforefind()中实现它: http://book.cakephp.org/view/1049/beforeFind