Как заставить использовать мой идентификатор в категории, а не автоматическое увеличение категории prestashop. Тема

Как заставить использовать мой идентификатор в категории, а не автоматическое увеличение категории prestashop. Тема

27.05.2019 06:46:56 Просмотров 51 Источник

Я хочу определить свой собственный идентификатор категории, например(999,2222,3333) и принудительно использовать его в базе данных PrestaShop, но когда я выполняю его (1,2,3) Как я могу заставить использовать свой собственный идентификатор

        foreach ($XMLRSString->Families->Family as $family)
        {   
            $_GET['forceIDs'] = true;

            $category = new Category($family->Code);

            $category->id = array((int)Configuration::get('PS_LANG_DEFAULT') =>  $family->Code);

            $category->id_category = array((int)Configuration::get('PS_LANG_DEFAULT') =>  $family->Code);

            $category->id_category_default = array((int)Configuration::get('PS_LANG_DEFAULT') =>  $family->Code);

            $category->is_root_category = false;

            $category->name = array((int)Configuration::get('PS_LANG_DEFAULT') => $family->Designation);

            $category->id_parent = Configuration::get('PS_HOME_CATEGORY');

            $category->link_rewrite = array((int)Configuration::get('PS_LANG_DEFAULT') =>  $family->Code);

            $category->add();

        }
У вопроса есть решение - Посмотреть?

Ответы - Как заставить использовать мой идентификатор в категории, а не автоматическое увеличение категории prestashop. Тема / How to Force using my ID on category, not the auto-increment of prestashop category. PrestaShop

Является ответом!
Bruno Leveque

27.05.2019 09:10:56

В PrestaShop, если вы хотите принудительно ввести идентификатор конкретного объекта (категория, продукт, заказ и т. д.) чтобы обойти автоматическое приращение SQL во время вставки БД, необходимо установить force_id

Это будет работать со всеми версиями PrestaShop и может быть найдено в классе ObjectModel (родительский класс для всех объектов):

$category = new Category();
$category->id = 42;
$category->force_id = true;
$category->is_root_category = false;
$category->name = array((int)Configuration::get('PS_LANG_DEFAULT') => 'Test');
$category->link_rewrite = array((int)Configuration::get('PS_LANG_DEFAULT') =>  'test');
$category->id_parent = Configuration::get('PS_HOME_CATEGORY');
$category->add();

Затем он проверяется непосредственно перед добавлением объекта в БД, в том же классе:

/** @var bool Enables to define an ID before adding object. */
public $force_id = false;

Надеюсь, это поможет!

https://stackoverflow.com/questions/56329118/how-to-force-using-my-id-on-category-not-the-auto-increment-of-prestashop-categ/56330691#comment99282834_56330691
о, славное спасибо-q sop много! Он работает в совершенстве :)
Закрыть X