首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >预Prestashop管理命令控制器

预Prestashop管理命令控制器
EN

Stack Overflow用户
提问于 2014-11-12 09:01:49
回答 1查看 3.9K关注 0票数 0

我想问一下这个控制器的事。

在过去的版本(比如1.5 )中,我可以在admin/tab中找到它,并添加额外的功能。

在1.6版本中,我找不到任何管理类文件。所以我应该编辑控制器/管理员/AdminOrdersController,是吗?

代码语言:javascript
复制
 elseif(isset($_POST['submitInvoice'])){
            if ($this->tabAccess['edit'] === '1')
            {
                mysql_query('UPDATE `'._DB_REFIX_.'orders` SET `invoice_number` = \''.$_POST['invoice_number'].'\',`order_date` = \''.$_POST['order_date'].'\', `changed_invoice`=1, `manager`=\''.$cookie->firstname.' '.$cookie->lastname.'\', `changedStatus`= \''.$_POST['changedStatus'].'\' WHERE `id_order` = '.$_GET['id_order']);
            }
        }

我添加此代码以更新一些值,如发票号或订单日期。但我不能更新这个。有相同的日期和号码。更新的方法不好吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-13 19:03:57

  • 如果可能,您应该始终使用模块和钩子来修改PrestaShop逻辑。
  • 如果您需要覆盖一个函数,并且没有合适的钩子,那么您应该使用overrides:override/controllers/admin/AdminOrderController.php。该文件的内容应该类似于:AdminOrderController extends AdminOrderControllerCore。如果您不确定我的意思,您应该尝试在overide文件夹中搜索任何覆盖类。
  • 您的代码是非常不安全的。您至少应该使用Db::getInstance()->execute($sql);
  • 您的代码可能无法工作,因为您是在函数中间的某个地方编写值,而Order是一个对象,这意味着在您将值写入数据库之后,可能会保存Order对象。保存order对象时,它会覆盖您的值。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26882944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档