CakePHP - 分页查询附加默认条件" TableName.deleted" != 1"

时间:2015-08-04 06:07:59

标签: php mysql cakephp pagination paginate

我正在使用Cakephp V2.0并且正在使用庞大的应用程序。以下是我现在面临的问题。

问题: 选择查询是自动设置条件,如" TableName.deleted" != 1

实际上创建问题是什么,我想在此查询中添加我的自定义条件以获取所有软删除的记录,例如:" TableName.deleted" == 1 。 但是当我们使用private void processControlWord() { if (inHeader) { if (this.equals("ansi")) { // E.g., here globalCharset = WINDOWS_1252; } else if (this.equals("pca")) { globalCharset = CP850; } else if (this.equals("pc")) { globalCharset = CP437; } else if (this.equals("mac")) { globalCharset = MAC_ROMAN; } } } 函数时,它将在MySQL Query条件结束时附加默认条件,然后MySQL Query将如下所示:

$this->paginate()

因此,它只通过采用最后一个条件来检索记录集,并仅返回未删除的记录。

如何删除此默认CakePHP条件(" TableName.deleted"!= 1 )?

已编辑(已添加代码):

("TableName.deleted" == 1) AND "TableName.deleted" != 1 Order By xyz

任何人都可以让我知道我该怎么做才能解决这个问题。任何帮助将不胜感激!

提前致谢。

1 个答案:

答案 0 :(得分:0)

感谢您的建议和意见。

其实我得到了相同的答案。我们为同一个

创建了行为

<强> SoftDeletableBehavior.php

我们在其中定义了附加条件的相关方法&#34; TableName.deleted&#34; != 1 。它也在模型中提到过,如下所示:

var $actsAs = array(
        'SoftDeletable' => array(
            'field' => 'deleted',
            'find' => true
        ),

    );

所以我做了一个非常小的改变,它正在发挥作用。

var $actsAs = array(
            'SoftDeletable' => array(
                'field' => 'deleted',
                'find' => false
            ),

        );