2010-08-16 5 views
1

Эй, у меня есть элемент, который делает requestAction для захвата записей, отсортированных по дате.cakePHP, получение записей после этого

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

К примеру, в моем элемент I нечто подобное:

$stuff = $this->requestAction('stuff/get_stuff/sort:my_date/direction:asc');

Как я должен идти об ограничении его только записи с my_date после в настоящее время?

Является ли их другие парами я должен добавить, или есть что-то я мог бы добавить в find(...) вызов в моих get_stuff действия в контроллере stuff?

Совет или дружеский толчок в правильном направлении был бы признателен!

+0

Является ли 'my_date' датой создания или последней модификации? – NullUserException

+0

Если это так, вы можете просто называть поля 'created' или' modified', а Cake автоматически заполняет их для вас. – NullUserException

+0

@NullUserException, нет, это не создание или изменение даты. –

ответ

2

Это действительно зависит от того, будет ли это ВСЕГДА быть действием, которое вы хотите предпринять. Но вот пара идей.

  1. Вы можете добавить условие в запросе найти: (Complex Find Conditions)

    $this->Stuff->find('all', array('condition' => array('Stuff.my_date >' => date('Y-m-d'))));

  2. Вы можете добавить метод обратного вызова beforeFind к модели, которая реализует один и тот же основной процесс. Он добавит условие к каждому запросу поиска для данной модели. (beforeFind)

0

Вы можете создать новый метод в контроллере, чтобы найти записи, нужно и просто позвонить, что, со всеми пользовательскими параметрами на месте в находке. Тогда просто убедитесь, что вы проверите его с помощью if($this->params['requested']), чтобы убедиться, что он исходит только от вашего звонка requestAction() и return набора данных.

Затем убедитесь, что вы кешируете результат, чтобы не создавать огромные накладные расходы на ваше приложение, вызывая новый цикл отправки каждый раз, когда кто-то загружает страницу.

Смежные вопросы