Список помощников с таблицами соединений [prestashop] - PullRequest
0 голосов
/ 29 сентября 2019

У меня есть модуль, который получает значение из пользовательской таблицы, в которой есть идентификатор категории. Я хотел бы получить название категории в моем списке. Я попытался добавить таблицу соединения, но когда я получил значение в списке полей, оно пустое.

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

Есть идеи?

include_once dirname(_PS_ROOT_DIR_).'\prestashop\modules\referencegenerator\classes\Shortcode.php';

class AdminReferenceGeneratorController extends ModuleAdminController
{
     public function __construct()
    {
        parent::__construct();
        $this->bootstrap = true; // use Bootstrap CSS
        $this->table = 'referencegenerator'; // SQL table name, will be prefixed with _DB_PREFIX_
        $this->identifier = 'id'; // SQL column to be used as primary key
        $this->className = 'Shortcode'; // PHP class name
        $this->allow_export = true; // allow export in CSV, XLS..

          $this->_join .= ' LEFT JOIN `'._DB_PREFIX_.'category_lang` cl
            ON (cl.`id_category` = `id_cat`
            AND cl.`id_lang` = '.(int)$this->context->language->id.')';


        $this->_defaultOrderBy = 'id'; // the table alias is always `a`
        $this->_defaultOrderWay = 'DESC';
        $this->fields_list = [
            'id' => ['title' => 'ID','class' => 'fixed-width-xs'],
            'id_cat' => ['title' => 'Id Cat'],
            'name'=> ['title' => 'Cat Name'],
            'shortcode' => ['title' => 'Shortcode'],
        ];

        $this->addRowAction('edit');
        $this->addRowAction('delete');
        $this->addRowAction('details');
        $this->fields_form = [
          'legend' => [
            'title' => 'Pasta',
            'icon' => 'icon-list-ul'
          ],
          'input' => [
            ['name'=>'id_cat','type'=>'text','label'=>'id_cat','required'=>true,],
            ['name'=>'shortcode','type'=>'text','label'=>'shortcode','required'=>true],

          ],
          'submit' => [
            'title' => $this->trans('Save', [], 'Admin.Actions'),
          ]
        ];
  }
}

Класс:

<?php
class Shortcode extends ObjectModel {
  public $id;
  public $id_cat;
  public $shortcode;
    public static $definition = [
    'table' => 'referencegenerator',
    'primary' => 'id',
    'fields' => [
      'id_cat' =>  ['type' => self::TYPE_STRING, 'validate' => 'isAnything', 'required'=>true],      
      'shortcode' =>  ['type' => self::TYPE_STRING, 'validate' => 'isAnything', 'required'=>true],

    ],
  ];
}

...