Всем привет!
Подскажите пожалуйста, как правильно создать свою таблицу при установке своего модуля в битрикс?
Сейчас в файле install/index.php есть метод installDB, вот его содержимое:
Метод installDB() вызывается внутри метода doInstall()
Но почему то, когда из адмнистративной панели я запускаю установку модуля, она прерывается, и отображается ошибка:
Сам файл с классом я разместил в local/modules/mycompany.resources/lib/entity/mapping.php:
Пробовал размещать этот файл и в local/modules/mycompany.resources/lib - результат тот же, ошибка та же.
Мне просто нужно, чтобы при установке модуля создавалась бы таблица resources_mapping с полями
и всё. И чтобы при удалении модуля эта таблица также бы удалялась, но это буду делать позже.
Не хотелось бы отдельно писать прямые SQL-запросы и запускать их уже после установки модуля. Всё таки хочу по-правильному всё сделать.
Подскажите, что я делаю не так? Куда копать?
Пример брал отсюда:
Подскажите пожалуйста, как правильно создать свою таблицу при установке своего модуля в битрикс?
Сейчас в файле install/index.php есть метод installDB, вот его содержимое:
| Код |
|---|
public function installDB()
{
ModuleManager::registerModule($this->MODULE_ID);
//Создаём таблицу resources_mapping
try{
\Mycompany\Resources\MappingTable::getEntity()->compileDbTableStructureDump();
}catch(\Exception $e){
self::dbgLog($e->getMessage(),'_create_table_error_'); //метод логирования
}
return true;
} |
Но почему то, когда из адмнистративной панели я запускаю установку модуля, она прерывается, и отображается ошибка:
| Код |
|---|
Class Mycompany\Resources\MappingTable not found. |
Сам файл с классом я разместил в local/modules/mycompany.resources/lib/entity/mapping.php:
| Код |
|---|
namespace MyCompany\Resources;
use Bitrix\Main\Entity;
class MappingTable extends Entity\DataManager
{
public static function getTableName()
{
return 'resources_mapping';
}
public static function getMap()
{
return [
new Entity\IntegerField('ID', array(
'primary' => true,
)),
new Entity\StringField('ADVANTA_TASK_RECORD_UID', array(
'required' => true,
))
];
}
} |
Пробовал размещать этот файл и в local/modules/mycompany.resources/lib - результат тот же, ошибка та же.
Мне просто нужно, чтобы при установке модуля создавалась бы таблица resources_mapping с полями
| Код |
|---|
ID (integer) TASK_RECORD_UID (string) |
и всё. И чтобы при удалении модуля эта таблица также бы удалялась, но это буду делать позже.
Не хотелось бы отдельно писать прямые SQL-запросы и запускать их уже после установки модуля. Всё таки хочу по-правильному всё сделать.
Подскажите, что я делаю не так? Куда копать?
Пример брал отсюда: