2010-07-31 4 views
0

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

$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))); 

пожалуйста, что я делаю не так ?!

+1

Каковы ошибки? Каков тип данных поля публикации_numerations_published_date? – Mike

ответ

1

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

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

Посмотрите, что это массив в массиве.

С уважением.

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

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

0

Я раньше не использовал CakePHP, но то, что я собираю из документации, состоит в том, что эти строки даты должны быть фактическими датами. Какое состояние вы действительно хотите? Вы хотите фильтр, который возвращает публикации 1 января 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'))); 
+2

'date()' возвращает строку, поэтому 'date ('Y-m-d', strtotime ('2006-01-01'))' совпадает с '' 2006-01-01''. – Mike

+0

Ах, да. Извините, это было давно с моих PHP-дней :) –

+0

tnx, но, пожалуйста, проверьте UPDATED часть моего сообщения. Тпй !!! – user198003

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