Opencart事件数据缺少标识符

时间:2017-06-29 10:05:31

标签: php opencart

使用opencart 3并尝试使用这些事件,但我无法找到标识符。

例如,尝试扩展返回表单添加了一个事件:

$this->model_setting_event->addEvent('mail_account_return_after', 'catalog/model/account/return/addReturn/after', 'extension/module/return/returnAdd');

控制器:

class ControllerExtensionModuleReturn extends Controller {

    public function returnAdd(&$route, &$args, &$output) {
        print_r($args);
        exit;

$args缺少主要的return_id标识符:

Array
(
    [0] => Array
        (
            [firstname] => Foo
            [lastname] => Bar
            [email] => test@gmail.com
            [telephone] => 01234556789
            [order_id] => 29
            [date_ordered] => 2017-06-29
            [product] => Canon EOS 5D
            [model] => Product 3
            [quantity] => 1
            [return_reason_id] => 4
            [opened] => 0
            [comment] => Test comment
        )

)

尝试使用$this->db->getLastId()但是返回0.使用其他事件进行测试,似乎缺少主要标识符。

opencart在哪里设置传递给之前/之后事件的数据?

2 个答案:

答案 0 :(得分:1)

system/engine/loader.php处查看字符串beforeafter。有一些方法可以查看视图,控制器,配置和语言。

答案 1 :(得分:1)

如果我没弄错,您应该能够访问return_id中的自动增量$output,其中包含方法addReturn()的输出,即$this->db->getLastId();

至于为什么在你的活动中第二次呼叫getLastId()不起作用,这是一个很好的问题。我认为可能会发生一些其他的查询 - 虽然默认情况下我不认为应该有。在您的事件被触发之前是否可能有另一个触发器运行查询?