Запрос CakePagination добавляет условие по умолчанию & quot; TableName.deleted & quot; ! = 1 & quot;

Я использую Cakephp V2.0 и на нем работает огромное приложение. Ниже приводится вопрос, с которым я сталкиваюсь сейчас.

Выпуск:
Выбор запроса — это то, что автоматически устанавливает условие, как «TableName.deleted»! = 1

Что на самом деле создает проблему, я хочу добавить свое пользовательское условие в этот запрос, чтобы получить все мягко удаленные записи, т.е. «TableName.deleted» == 1 .
но когда мы используем $this->paginate() функция, она добавит условие по умолчанию в конце условия MySQL Query, а затем MySQL Query будет выглядеть так:

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

Таким образом, он извлекает набор записей только путем принятия последнего условия и возвращает только те записи, которые не были удалены.

Как мне удалить это условие CakePHP по умолчанию («TableName.deleted»! = 1)?

Отредактировано (добавлен код):

if (isset($this->passedArgs['showdeleted']) && $this->passedArgs['showdeleted'] == 1) {
$displayConditions['AND']['tableName.deleted'] = "1";
} else {
$displayConditions['AND']['tableName.deleted'] = "0";
}

$this->paginate = array(
'conditions' => $displayConditions,
'fields' => $this->displayFields,
'limit' => $show_page,
'group' => 'tableName.id',
'contain' => array(
'tbl1',
'tbl2',
'tbl3',
'tbl4',
'tbl5',
),
);

$returnRecords = $this->paginate();

Может кто-нибудь, пожалуйста, дайте мне знать, что я должен сделать, чтобы решить эту проблему. любая помощь будет оценена!

Заранее спасибо.

-3

Решение

Спасибо за ваши предложения и комментарии.

На самом деле я получил ответ за то же самое. мы создали поведение для того же

SoftDeletableBehavior.php

В котором мы определили родственные методы, которые добавляли условие «TableName.deleted»! = 1. и это также было упомянуто в модели, как показано ниже:

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

);

поэтому я только что сделал одно очень небольшое изменение, и оно работает.

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

);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]