如何在管理控制器中加载目录模型

rb1*_*b16 5 opencart

我正在使用 Opencart 版本 2.1.0.1,如何在管理控制器中加载前端模型,

我有一个模型函数,它告诉外部预订 ID

class ModelShippingParcelled extends Model {
        public function getParcelledBooking($order_id) {
             $query = $this->db->query("SELECT booking_id FROM " . DB_PREFIX . "parcelled WHERE order_id = '" . (int)$order_id . "'");
             return $query->row;
    }
Run Code Online (Sandbox Code Playgroud)

我想在管理控制器中加载这个模型。做这个的最好方式是什么?我也应该在管理中重写这个模型吗?但我不想重写相同的功能。如果有好的方法请推荐!

Zso*_*lti 2

好吧,有一个丑陋的伎俩可以实现你想要的。例如,如果您想从管理控制器使用前端的目录/产品模型,那么您可以:

require_once DIR_CATALOG . "model/catalog/product.php";
$product = new ModelCatalogProduct($this->registry);
Run Code Online (Sandbox Code Playgroud)

当您想从前端控制器使用管理模型时,这也将起作用,只需更改require语句即可。

  • 使用这种方法,您可能会遇到重新声明致命错误,因为管理和目录中的大多数内容都具有相同的名称。但我同意,除了直接复制或再现模型函数之外,这是唯一的解决方案。 (2认同)