这种情况怎么了?

时间:2010-07-31 18:13:21

标签: cakephp conditional-statements

如果我的一个条件是:

,我会收到错误
$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 个答案:

答案 0 :(得分:1)

确保遵循该计划:

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

看到它是数组中的数组。

亲切的问候。

Edit1:顺便说一句,你可以看看蛋糕的“自动化”,例如名为createdmodified的数据库中的列会自动更新。

Edit2:也许是debug($this->params['named']['searchPublishedSince'])揭示了一些东西。

答案 1 :(得分:0)

我以前从未使用过CakePHP,但我从文档中收集的是那些日期字符串可能应该是实际日期。你真正想要的条件是什么?您想要一个过滤器,它在2006年1月1日或者所有大于2006年1月1日的时候都返回了出版物吗?

对于2006年1月1日的出版物,或许可以尝试:

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

对于所有出版物> =至2006年1月1日,请尝试:

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