我正在使用prestashop 1.6.0.9
我正在使用getFirstMessage()函数,如果系统或客户发送一条要在发票上显示的消息,它将返回消息。但是,我在这里挣扎着它的SQL。
<?php
Class Order extends OrderCore {
public function getFirstMessage()
{
return Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
SELECT `message`
FROM `'._DB_PREFIX_.'message`
WHERE `id_order` = '.(int)$this->id.'
ORDER BY `id_message`
');
}
}
当客户订购某些商品时,默认邮件设置为“付款已接受”或“付款错误”。
我希望这样做,如果邮件是“付款接受”,它就不会返回消息,所以我这样做了。
<?php
Class Order extends OrderCore {
public function getFirstMessage()
{
return Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
SELECT `message`
FROM `'._DB_PREFIX_.'message`
WHERE (`id_order` = '.(int)$this->id.')
AND (`message` != "Payment accepted")
ORDER BY `id_message`
');
}
}
但是这不起作用,因为它仍然返回'付款接受',所以我试过了。
<?php
Class Order extends OrderCore {
public function getFirstMessage()
{
$sql_val = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
SELECT `message`
FROM `'._DB_PREFIX_.'message`
WHERE (`id_order` = '.(int)$this->id.')
AND (`message` != "Payment accepted")
ORDER BY `id_message`
');
if(
$sql_val == "Payment accepted"
)
{
return "No Message";
} else {
return $sql_val;
}
}
}
那也失败了。所以现在我在这里想要一些关于我如何处理这个问题的建议?
答案 0 :(得分:0)
如果我可以建议您一个解决方案,那么字符串比较总是&#39;一个神奇的技巧,所以我会这样做:
<?php
public function getFirstMessage()
{
$sql_val = strtolower(parent::getFirstMessage());
if(!strcmp($sql_val, 'payment accepted')){ //
// do stuff
}
else {
// do other stuff
}
}