Что не так с этим условием? - PullRequest
0 голосов
/ 31 июля 2010

я получаю ошибки, если одно из моих условий:

$conditions[] = array("PublicationNumeration.publication_numerations_published_date" => '2006-01-01' );

что не так с этим условием?

но все работает нормально с

$conditions[] = array("PublicationNumeration.publication_numerations_published_date" => '2006' );

... но это не все, что мне нужно / нужно.

что я делаю не так?

ОБНОВЛЕНО:

следующий работает нормально:

$mydate = '2007/01/01';
$conditions[] = array("PublicationNumeration.publication_numerations_published_date LIKE "  =>  date('Y-m-d' , strtotime( $mydate ) ) );
// create sql `PublicationNumeration`.`publication_numerations_published_date` LIKE '2007-01-01' 

но следующий создает ошибку:

$mydate = $this->params['named']['searchPublishedSince'].'/01/01'; // searchPublishedSince is defined in url
$conditions[] = array("PublicationNumeration.publication_numerations_published_date LIKE "  =>  date('Y-m-d' , strtotime( $mydate ) ) );

пожалуйста, что я?я делаю неправильно?!

Ответы [ 2 ]

1 голос
/ 01 августа 2010

Убедитесь, что вы придерживаетесь схемы:

$conditions = array("Post.title" => "This is a post");
//Example usage with a model:
$this->Post->find('first', array('conditions' => $conditions));

Убедитесь, что это массив в массиве.

С уважением.

Edit1: Кстати, вы можете иметьвзгляд на «автоматическое» пирог, например, столбцы в базе данных с именем created или modified обновляются автоматически.

Edit2: возможно, debug($this->params['named']['searchPublishedSince']) что-то раскрывает.

0 голосов
/ 31 июля 2010

Я никогда не использовал CakePHP раньше, но из документации я понял, что эти строки дат, вероятно, должны быть фактическими датами. Какое состояние вы на самом деле хотите? Хотите ли вы фильтр, который возвращает публикации 01 января 2006 г. или все версии, превышающие 01 января 2006 г.?

Для публикаций 01 января 2006 г., возможно, попробуйте:

$conditions[] = array("PublicationNumeration.publication_numerations_published_date" => date('Y-m-d', strtotime('2006-01-01')));

Для всех публикаций> = до 01 января 2006 г. попробуйте:

$conditions[] = array("PublicationNumeration.publication_numerations_published_date >=" => date('Y-m-d', strtotime('2006-01-01')));
...