我是 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/