Выполнение SQL-запроса в оксиде

Я довольно новичок в OXID.

Я пытаюсь выполнить SQL-запрос, используя только функции OXID.

Задача состоит в том, чтобы проверить, существует ли $ discount в таблице oxdiscount oxVoucherSerie, и если он существует, получить оксид из oxVoucherSerie, который соответствует этой скидке.

К сожалению, я не могу использовать простой MySQL, и мне разрешено использовать только оксидные функции. Я понятия не имею, как это сделать.

    public function save_voucher($discount){
$o_voucherid         = oxNew("oxVoucherSerie");
$aWhere_discount['oxdiscount']    = $discount;
$sSql                       = $o_voucherid->buildSelectString($aWhere_discount);
$b_exists                   = $o_voucher->assignRecord($sSql);
}

Это говорит мне, если скидка существует. Тем не менее, я понятия не имею, чтобы получить оксид из указанной скидки.

0

Решение

нам, возможно, придется сначала уточнить некоторые формулировки и переменные, потому что я не совсем уверен, чего вы пытаетесь достичь.

ваучер — (также называемый «купоном») посетитель магазина может ввести код ваучера / купона в корзину, чтобы добиться снижения цены или бесплатного товара.
Ваучеры генерируются в настройках магазина -> серия купонов

скидка — общее снижение цены для некоторых категорий или товаров, например, 10% на аксессуары для животных.
Скидки можно настроить в настройках магазина -> Скидки


хорошо, я обновил свой пост.

Ваш код работает хорошо, я просто немного его изменил. Сначала код, а затем объяснение:

$o_voucher = oxNew("oxVoucherSerie");
$aWhere_discount['oxdiscount'] = 25;
$sSql = $o_voucher->buildSelectString($aWhere_discount);
$o_voucher->assignRecord($sSql);
var_dump($o_voucher);

Я заменил $ o_voucherid с $ o_voucher (без Я бы)
$o_voucher = oxNew("oxVoucherSerie"); дает вам объект oxVoucherSeries
$o_voucher->assignRecord($sSql); не только сообщает вам, существует ли серия ваучеров с такой скидкой, но и загружает эту серию ваучеров в $ o_voucher , так что вы можете получить доступ ко всем (не защищенным) параметрам этой серии ваучеров, используя $ o_voucher, например:
$o_voucher->getId() или же $o_voucher->oxvoucherseries__oxid->value() для получения его oxID или просто var_dump($o_voucher); чтобы увидеть все свойства объектов

Кстати, если вы разрабатываете с OXID 4.9, вы можете использовать этот модуль: https://marat.ws/direct-access-to-oxid-framework-functions/ для быстрой оценки и отладки вашего кода.
просто скопируйте и вставьте код сверху в текстовую область и нажмите кнопку

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]