BO訂單的過濾器由controllers\admin\AdminOrdersController.php
創建。
爲了保存prestashop核心代碼,它表明你爲這個控制器創建一個覆蓋,你需要加入你需要的表(如果還沒有加入的話),指定你的表的位置是你想要的字段用於過濾器以及該領域本身。仔細查看AdminOrdersController的構造函數,以更好地理解如何執行此操作。
例如,如果你想向承運人名稱添加爲一個過濾器,創建override\controllers\admin\AdminOrdersController.php
文件,並添加以下代碼:
<?php
class AdminOrdersController extends AdminOrdersControllerCore {
public function __construct() {
parent::__construct();
$this->_join .= 'LEFT JOIN `'._DB_PREFIX_.'carrier` cr ON (cr.`id_carrier` = a.`id_carrier`)';
$this->_select .= ', cr.name as carrier';
$this->fields_list['carrier'] = array(
'title' => $this->l('Carrier'),
'align' => 'text-center'
);
}
}
我明白了!現在在原始控制器中,它使用'_orders'表。我想要根據他們用於訂購的承運商有一個過濾器......承運人在不同的表格內。我怎麼能這樣做? – ProEvilz
我已更新示例以過濾運營商名稱。 – gabdara
這很棒,但會引發錯誤。 錯誤的SQL查詢 'where子句'中的未知列'carrier' – ProEvilz