Cakephp 这种情况有什么问题?
如果我的条件之一是:Cakephp 这种情况有什么问题?,cakephp,conditional-statements,Cakephp,Conditional Statements,如果我的条件之一是: $conditions[] = array("PublicationNumeration.publication_numerations_published_date" => '2006-01-01' ); 这种情况有什么问题 但一切都很顺利 $conditions[] = array("PublicationNumeration.publication_numerations_published_date" => '2006' ); 。。。但这不是我想要/
$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 ) ) );
拜托,我做错了什么 我以前从未使用过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')));
确保您遵循以下计划:
$conditions = array("Post.title" => "This is a post");
//Example usage with a model:
$this->Post->find('first', array('conditions' => $conditions));
请确保它是数组中的一个数组
亲切的问候
Edit1:顺便说一句,您可以查看cake的“automagic”,例如数据库中名为创建的或修改的获取自动更新的列
Edit2:可能是调试($this->params['named']['searchPublishedSince'])
显示了一些信息。有什么错误?发布日期字段的数据类型是什么?date()
返回一个字符串,因此date('Y-m-d',strotime('2006-01-01'))
与'2006-01-01'
相同。啊,是的。对不起,我的PHP时代已经过去很久了:)