CAKEphp虚拟字段无法正常工作

时间:2015-01-15 08:27:48

标签: php mysql cakephp

因为我的表中有两个价格列(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)"
    );

不知怎的,这在我的观点中出现了错误:

  

错误:SQLSTATE [42000]:语法错误或访问冲突:1064您   您的SQL语法有错误;检查对应的手册   您的MySQL服务器版本,以便在&#39;)附近使用正确的语法,   Abonnementsubscription_discount))AS Abonnement__end_price FROM   `蛋糕&#39;在第1行

我不明白这里出了什么问题。

1 个答案:

答案 0 :(得分:0)

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)"
    );

将其删除