CAKEphp 虚拟字段不工作
CAKEphp Virtual field not working
因为我的 table 中有两个价格列(subscription_discount 和 subscription_price)。我需要找到一种方法来找到两者中最低的并使用它。问题是只有当 subscription_discount 低于 subscription_price 并且 subscription_discount 不是 0.00 时才会发生这种情况。
这是我在模型中创建虚拟字段的代码:
public $virtualFields = array(
'end_price' => "IF(Abonnement.subscription_discount IS NOT NULL OR Abonnement.subscription_discount < Abonnement.subscription_price, Abonnement.subscription_price), Abonnement.subscription_discount)"
);
在我看来,这最终会导致错误:
Error: SQLSTATE[42000]: Syntax error or access violation: 1064 You
have an error in your SQL syntax; check the manual that corresponds to
your MySQL server version for the right syntax to use near '),
Abonnement
.subscription_discount
)) AS Abonnement__end_price
FROM
`cake' at line 1
我不明白这里出了什么问题。
public $virtualFields = array(
'end_price' => "IF(Abonnement.subscription_discount IS NOT NULL OR Abonnement.subscription_discount < Abonnement.subscription_price, Abonnement.subscription_price>>>**)**<<<, Abonnement.subscription_discount)"
);
删除它
因为我的 table 中有两个价格列(subscription_discount 和 subscription_price)。我需要找到一种方法来找到两者中最低的并使用它。问题是只有当 subscription_discount 低于 subscription_price 并且 subscription_discount 不是 0.00 时才会发生这种情况。
这是我在模型中创建虚拟字段的代码:
public $virtualFields = array(
'end_price' => "IF(Abonnement.subscription_discount IS NOT NULL OR Abonnement.subscription_discount < Abonnement.subscription_price, Abonnement.subscription_price), Abonnement.subscription_discount)"
);
在我看来,这最终会导致错误:
Error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '),
Abonnement
.subscription_discount
)) ASAbonnement__end_price
FROM `cake' at line 1
我不明白这里出了什么问题。
public $virtualFields = array(
'end_price' => "IF(Abonnement.subscription_discount IS NOT NULL OR Abonnement.subscription_discount < Abonnement.subscription_price, Abonnement.subscription_price>>>**)**<<<, Abonnement.subscription_discount)"
);
删除它