Alj*_*jay 5 php mysql activerecord yii yii2
基本上是 ProductOffer 表。\n迁移
\n\n$this->createTable(\'product_offer\', [\n \'id\' => $this->primaryKey(),\n \'product_id\' => $this->bigInteger(20) . \' NOT NULL\',\n \'customer_id\' => $this->bigInteger(20),\n \'coupon_code\' => $this->string(),\n \'offer\' => $this->string(),\n \'customer_name\' => $this->string(),\n \'email_address\' => $this->string(),\n \'phone_number\' => $this->string(),\n \'note\' => $this->text(),\n \'admin_note\' => $this->text(),\n \'status\' => $this->tinyInteger(),\n \'created\' => $this->dateTime() . \' NOT NULL\',\n \'modified\' => $this->dateTime(),\n]);\nRun Code Online (Sandbox Code Playgroud)\n\n现在我在该表中有数据并创建了查询。
\n\n$stamp = mktime(0, 0, 0);\n$testQuery = self::find()->where([\n \'and\',\n [\'=\', \'status\', self::STATUS_REJECTED],\n [\'=\', \'product_id\', $this->product_id],\n [\'=\', \'email_address\', $this->email_address],\n [\'>\', \'created\', date(\'m-d-Y H:i:s\',$stamp)]\n]);\necho "<pre>";\n print_r($testQuery->all());\necho "</pre>";\nRun Code Online (Sandbox Code Playgroud)\n\n结果是
\n\nArray\n(\n [0] => app\\models\\ProductOffer Object\n (\n [verifyCode] => \n [_attributes:yii\\db\\BaseActiveRecord:private] => Array\n (\n [id] => 48\n [product_id] => 111\n [customer_id] => \n [coupon_code] => \n [offer] => 23\n [customer_name] => Aljay Mallari\n [email_address] => asrockg07@gmail.com\n [phone_number] => 958568574\n [note] => Test\n [admin_note] => \n [status] => Rejected \n [created] => 2018-05-16 04:38:28\n [modified] => \n )\n\n [_oldAttributes:yii\\db\\BaseActiveRecord:private] => Array\n (\n [id] => 48\n [product_id] => 111\n [customer_id] => \n [coupon_code] => \n [offer] => 23\n [customer_name] => Aljay Mallari\n [email_address] => asrockg07@gmail.com\n [phone_number] => 958568574\n [note] => Test\n [admin_note] => \n [status] => 0\n [created] => 2018-05-16 04:38:28\n [modified] => \n )\n\n [_related:yii\\db\\BaseActiveRecord:private] => Array\n (\n )\n\n [_relationsDependencies:yii\\db\\BaseActiveRecord:private] => Array\n (\n )\n\n [_errors:yii\\base\\Model:private] => \n [_validators:yii\\base\\Model:private] => \n [_scenario:yii\\base\\Model:private] => default\n [_events:yii\\base\\Component:private] => Array\n (\n )\n\n [_eventWildcards:yii\\base\\Component:private] => Array\n (\n )\n\n [_behaviors:yii\\base\\Component:private] => Array\n (\n )\n\n )\n\n [1] => app\\models\\ProductOffer Object\n (\n [verifyCode] => \n [_attributes:yii\\db\\BaseActiveRecord:private] => Array\n (\n [id] => 50\n [product_id] => 111\n [customer_id] => \n [coupon_code] => \n [offer] => 23\n [customer_name] => Aljay Mallari\n [email_address] => asrockg07@gmail.com\n [phone_number] => 958568574\n [note] => Test\n [admin_note] => \n [status] => Rejected \n [created] => 2018-05-17 04:39:55\n [modified] => \n )\n\n [_oldAttributes:yii\\db\\BaseActiveRecord:private] => Array\n (\n [id] => 50\n [product_id] => 111\n [customer_id] => \n [coupon_code] => \n [offer] => 23\n [customer_name] => Aljay Mallari\n [email_address] => asrockg07@gmail.com\n [phone_number] => 958568574\n [note] => Test\n [admin_note] => \n [status] => 0\n [created] => 2018-05-17 04:39:55\n [modified] => \n )\n\n [_related:yii\\db\\BaseActiveRecord:private] => Array\n (\n )\n\n [_relationsDependencies:yii\\db\\BaseActiveRecord:private] => Array\n (\n )\n\n [_errors:yii\\base\\Model:private] => \n [_validators:yii\\base\\Model:private] => \n [_scenario:yii\\base\\Model:private] => default\n [_events:yii\\base\\Component:private] => Array\n (\n )\n\n [_eventWildcards:yii\\base\\Component:private] => Array\n (\n )\n\n [_behaviors:yii\\base\\Component:private] => Array\n (\n )\n\n )\n\n [2] => app\\models\\ProductOffer Object\n (\n [verifyCode] => \n [_attributes:yii\\db\\BaseActiveRecord:private] => Array\n (\n [id] => 51\n [product_id] => 111\n [customer_id] => \n [coupon_code] => \n [offer] => 23\n [customer_name] => Aljay Mallari\n [email_address] => asrockg07@gmail.com\n [phone_number] => 958568574\n [note] => test\n [admin_note] => \n [status] => Rejected \n [created] => 2018-05-17 04:43:29\n [modified] => \n )\n\n [_oldAttributes:yii\\db\\BaseActiveRecord:private] => Array\n (\n [id] => 51\n [product_id] => 111\n [customer_id] => \n [coupon_code] => \n [offer] => 23\n [customer_name] => Aljay Mallari\n [email_address] => asrockg07@gmail.com\n [phone_number] => 958568574\n [note] => test\n [admin_note] => \n [status] => 0\n [created] => 2018-05-17 04:43:29\n [modified] => \n )\n\n [_related:yii\\db\\BaseActiveRecord:private] => Array\n (\n )\n\n [_relationsDependencies:yii\\db\\BaseActiveRecord:private] => Array\n (\n )\n\n [_errors:yii\\base\\Model:private] => \n [_validators:yii\\base\\Model:private] => \n [_scenario:yii\\base\\Model:private] => default\n [_events:yii\\base\\Component:private] => Array\n (\n )\n\n [_eventWildcards:yii\\base\\Component:private] => Array\n (\n )\n\n [_behaviors:yii\\base\\Component:private] => Array\n (\n )\n\n )\n\n [3] => app\\models\\ProductOffer Object\n (\n [verifyCode] => \n [_attributes:yii\\db\\BaseActiveRecord:private] => Array\n (\n [id] => 55\n [product_id] => 111\n [customer_id] => \n [coupon_code] => \n [offer] => 23\n [customer_name] => Aljay Mallari\n [email_address] => asrockg07@gmail.com\n [phone_number] => 958568574\n [note] => Test\n [admin_note] => \n [status] => Rejected \n [created] => 2018-05-17 04:51:57\n [modified] => \n )\n\n [_oldAttributes:yii\\db\\BaseActiveRecord:private] => Array\n (\n [id] => 55\n [product_id] => 111\n [customer_id] => \n [coupon_code] => \n [offer] => 23\n [customer_name] => Aljay Mallari\n [email_address] => asrockg07@gmail.com\n [phone_number] => 958568574\n [note] => Test\n [admin_note] => \n [status] => 0\n [created] => 2018-05-17 04:51:57\n [modified] => \n )\n\n [_related:yii\\db\\BaseActiveRecord:private] => Array\n (\n )\n\n [_relationsDependencies:yii\\db\\BaseActiveRecord:private] => Array\n (\n )\n\n [_errors:yii\\base\\Model:private] => \n [_validators:yii\\base\\Model:private] => \n [_scenario:yii\\base\\Model:private] => default\n [_events:yii\\base\\Component:private] => Array\n (\n )\n\n [_eventWildcards:yii\\base\\Component:private] => Array\n (\n )\n\n [_behaviors:yii\\base\\Component:private] => Array\n (\n )\n\n )\n);\nRun Code Online (Sandbox Code Playgroud)\n\n今天在我们的时区是 5/17/2018,我想获取今天创建的数据,但似乎我的查询不排除昨天创建的数据。
\n\n我已经尝试表达这个
\n\n[\'<\', \'created\', new Expression(\'NOW()\')]\nRun Code Online (Sandbox Code Playgroud)\n\n和这个
\n\n$testQuery = self::find()->where([\n \'and\',\n [\'=\', \'status\', self::STATUS_REJECTED],\n [\'=\', \'product_id\', $this->product_id],\n [\'=\', \'email_address\', $this->email_address],\n [\'>\', \'created\', new Expression(date(\'m-d-Y H:i:s\', $stamp))]\n]);\necho "<pre>";\n print_r($testQuery->all());\necho "</pre>";\nRun Code Online (Sandbox Code Playgroud)\n\n现在我收到 SQL 错误
\n\n\n\n数据库异常 \xe2\x80\x93 yii\\db\\Exception SQLSTATE[42000]: 语法错误或\n 访问冲突: 1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的\n 手册,了解在第 1 行附近\'00:00:00)\' 使用的正确\n 语法正在执行的 SQL 是:\n SELECT * FROM
\nproduct_offerWHERE (status= 0) AND (product_id=\n \'111\') AND (email_address= \'asrockg07@gmail.com\') AND (created>\n 05-17-2018 00:00:00)
您可以将原始 SQL 内容与WHERE字符串格式的调用一起使用,也可以将两个WHERE调用组合在一起。综合起来,我们可以尝试以下操作:
$testQuery = self::find()->where([
'and',
['=', 'status', self::STATUS_REJECTED],
['=', 'product_id', $this->product_id],
['=', 'email_address', $this->email_address]
])
->andWhere('created >= CURDATE()');
Run Code Online (Sandbox Code Playgroud)
请注意,如果您想限制今天任何时间创建的记录,我认为您需要使用CURDATE此处,它对应于今天的午夜。