findAll в CakePHP 1.1 - PullRequest
       2

findAll в CakePHP 1.1

1 голос
/ 08 августа 2011

Я работаю с унаследованным приложением CakePHP 1.1, и в идеале мне нужно изменить некоторые запросы к базе данных.Хотя я гораздо больше привык работать с 1.2 и 1.3, поэтому мне трудно работать с кодом «старого стиля».Следующий запрос работает в 1.1:

$events = $this->Event->findAll(array('Event.id'=>$event_ids));

Я хочу добавить еще одно условие в этот массив, например, 'Event.start>' => [date] ', но любая попытка сделать это кажетсяв результате запрос возвращает ноль.

В дополнение к моей путанице, Cake 1.1 Cookbook предлагает, что findAll работает следующим образом:

  • findAll
  • string $ условий
  • array $поля
  • строка $ order
  • int $ limit
  • int $ page
  • int $ recursive

Если условия $Параметр должен быть строкой, тогда почему он часто имеет форму массива (не только в этом приложении, я видел его довольно много в других местах в сети)?Каков наилучший способ получить желаемые результаты от CakePHP 1.1?Если не считать обновления всего этого до современной версии Cake?

1 Ответ

2 голосов
/ 08 августа 2011

Рассматривая CakePHP 1.1 API , он предлагает первый параметр, $conditions, принимает значение mixed.

Однако около CakePHP 1.2 RC2 оператор сравнения перемещен справа налево (или от значения к ключу), чтобы сохранить конкатенацию.

Надеемся, что вам подойдет следующее:

$events = $this->Event->findAll(array(
    'Event.id' => $event_ids,
    'Event.start' => '> ' . gmdate(DATE_ATOM),
));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...