Создание таблиц через MIGX

У новичков часто возникает вопрос, как можно быстро создать какую нибудь таблицу и начать с ней работать на пример из сниппета. Я раньше делал всегда через пакет Василия modExtra, выпиливая из него то, что мне не нужно. Но это долго и не совсем удобно, если нужна одна — две таблички. MIGX решает эту проблему.


Итак, начнем с того, что мы установим MIGX и зайдем в него. Во вкладке Package Manager нам необходимо ввести Название пакета (Package Name):



И нажимаем кнопку Create Package. В директории core/components/youpackagename создались необходимые файлы.
Теперь, нам необходимо написать схему будущей таблицы или таблиц. Очень подробно об этом расписано на одном из курсов Василия. Так же есть официальная документация.
Мы создадим простую табличку для примера:
<?xml version="1.0" encoding="UTF-8"?>

<model package="electrica" baseClass="xPDOObject" platform="mysql" defaultEngine="MyISAM" phpdoc-package="" phpdoc-subpackage="" version="1.1">

    <object class="electricaItem" table="electrica_items" extends="xPDOSimpleObject">
        <field key="title" dbtype="varchar" phptype="string" precision="100" null="false" default="" />
        <field key="description" dbtype="text" phptype="string" null="false" default="" />
    </object>

</model>
и вставим схему во вкладку Xml Scheme и нажимаем кнопку Save Scheme:



Все, схема готова. Теперь, переходим на вкладку Create Table и нажимаем Create Tables. Теперь в базе у нас есть наша табличка:



Все. Теперь мы можем работать с нашей таблицей.

<?php
//Добавляем пакет
if(!$modx->addPackage('electrica', MODX_CORE_PATH . 'components/electrica/model/')){
    return 'false';
}
// Создаем запись
$table = $modx->newObject('electricaItem');
$array = [
    'title' => 'Какой то заголовок',
    'description' => 'Какое то описание'
    ];
    
$table->fromArray($array);
$table->save();

//Делаем выборку
$response = $modx->getIterator('electricaItem');

foreach($response as $res){
    print_r($res->toArray());
}
Вот таким достаточно простым способом можно быстро создавать свои таблицы и работать с ними.

Так же есть отличное видео, в котором Артем Зернов рассказывает о других фишках при работе с MIGX.
Михаил
25 апреля 2019, 11:19
17
588
+18
Поблагодарить автора Отправить деньги

Комментарии: 14

Николай Савин
25 апреля 2019, 12:09
1
0
Никогда не задумывался что так можно. Интересный способ — и правда быстрее. Правда надо в XML схемах ориентироваться.
Но надо еще понимать, что в этом случае мы не получаем управление записями в табличке внутри админки, только через API.
Или MIGX и здесь может помочь?
    Михаил
    25 апреля 2019, 12:17
    +3
    Может. Есть MIGX DB. Я потом статью напишу.
    Хотя в админку проще через modExtra делать)
      Николай Савин
      25 апреля 2019, 12:29
      0
      Как минимум более знакомо и управляемо.
      Дмитрий Касаткин
      25 апреля 2019, 12:42
      +1
      Я потом статью напишу.
      @Михаил только не обманите :) Очень ждем! MIGX крутой но такой «тяжелый» оказался при освоении на практике…
      Николай
      25 апреля 2019, 12:48
      0
      А кто какой modExtra пользуется? Самой первой, или последней?
        Михаил
        25 апреля 2019, 13:06
        +1
        Я пользуюсь обеими версиями)
      Evgeny Gromin
      25 апреля 2019, 13:41
      0
      Через CMPGenerator Pro тоже просто)) в 5 кликов) Но таблицу самому в БД создавать (но это не точно, просто я так делаю)
        Николай
        27 апреля 2019, 18:37
        0
        Подскажи пожалуйста как. Я пробовал — не получается. Даже заметку на днях написал: modx.pro/help/18126
Иван Бочкарев
25 апреля 2019, 13:33
0
Можно и в офф доку закинуть данную заметку.
iWatchYouFromAfar
25 апреля 2019, 13:38
0
Вообще MIGX это прям золото для MODx. Один из самых полезных пакетов.
Миша, спасибо за статью!
srs
srs
25 апреля 2019, 20:41
0
Только так и делал. Впервые увидел подобный способ у автора шопкипера (кстати в документации к 3 версии этот способ вроде был описан) и думал, что это достаточно известная фишка migx…
з.ы. А еще там можно собирать таблицы кнопочно-тыкочным путем, через конструктор и делать импорт и этих экспорт настроек. Дико удобная штука.
    Михаил
    25 апреля 2019, 20:50
    0
    в MIGX все кажись кнопочно-тыкочным путем ))))
      Сергей
      26 апреля 2019, 09:07
      +1
      Миша, кстати ты не упомянул еще об одной интересной особенности MIGXdb. Схему можно не писать вручную, а создав «пустую» заготовку для объекта например, который просто наследует xPDOSimpleObject (в котором уже прописан конфиг создающий столбец id), затем создав таблицы для этого объекта — можно в phpmyadmin визуально добавлять все остальные поля, элементы и т.д. в эту таблицу, а потом на стороне MIGXdb просто нажать кнопку парсинга схемы и она сама сгенерирует нужную xml schema на основе существующей таблицы в БД.

      Получается «обратный способ». Можно либо классическим способом создавать объекты, прописывая schema полностью, либо способом что я описал выше
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.