php - 如何在 postCondition 方法中使用 BETWEEN mysql 运算符?

标签 php mysql cakephp between

我是 cakePHP 的新手,我需要将 controller::postConditions 方法与 BETWEEN 运算符一起使用,但我不知道该怎么做。

我试过这种语法,正如我在 controller::find 文档中读到的那样:

$this->postConditions($this->data, array('Client.client_date_inscription BETWEEN ? AND ?'=>array($this->data['Client']['client_date_inscriptionD'],$this->data['Client']['client_date_inscriptionF'])))

表单输入是这样创建的:

echo $form->input('Client.client_date_inscriptionD',array('label'=>false,'type'=>'text','class'=>'toDatePicker'));

但这会引发此错误:

SQL Error: 1054: Unknown column 'Client.client_date_inscriptionD' in 'where clause' 

所以我的问题是,如何将 BETWEEN 运算符与 postConditions 一起使用?

最佳答案

@boobyWomack 我更改了大写的 D 和 F,这是我随机尝试过的。

我尝试了很多东西并潜伏在食谱中寻找答案。 我实际上偶然发现了如何执行此操作,而不是在 postConditions 文档中。

这是 postConditions 调用:

 $this->postConditions($this->data, array('Client.client_nom' => 'LIKE', 'Client.client_prenom' => 'LIKE', 'Client.client_email' => 'LIKE','Client.client_date_inscription'=>'BETWEEN ? AND ?'))

但是, View 中的 Client.client_date_inscription 输入应提供包含 2 个值的数组。 我使用我在食谱中找到的语法来完成它:

$form->input('Client.client_date_inscription.0',array('label'=>false,'type'=>'text','class'=>'toDatePicker'))
$form->input('Client.client_date_inscription.1',array('label'=>false,'type'=>'text','class'=>'toDatePicker'))

另一种方法是手动更改 Controller 中 $this->data['Client']['client_date_inscription'] 的值,但这与我的情况无关。

希望这对遇到相同问题的任何人有所帮助,因为它在说明书和 API 中都不是很清楚。

关于php - 如何在 postCondition 方法中使用 BETWEEN mysql 运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8503439/

相关文章:

php - 按 CakePHP 中的特定字段值排序

php - 从不存在的子域转发电子邮件?

php - 如何实现 Paypal Express Checkout API?

php - 全局创建者,任何插入查询的时间跨度

mysql - 从字符串转换日期

java - 使用java将大量数据存储到mysql的最佳方法

java - MySQL 在 spring-security.xml 中查询授权

php - cakephp数据编辑和更新时如何从网站根目录中删除图像

php - 先前插入的行在调用 PHP 脚本时消失

php - 使用 PDO 从 mysql 数据库检索数据时未找到数据库