Создание таблиц через MIGX
У новичков часто возникает вопрос, как можно быстро создать какую нибудь таблицу и начать с ней работать на пример из сниппета. Я раньше делал всегда через пакет Василия modExtra, выпиливая из него то, что мне не нужно. Но это долго и не совсем удобно, если нужна одна — две таблички. MIGX решает эту проблему.
Итак, начнем с того, что мы установим MIGX и зайдем в него. Во вкладке Package Manager нам необходимо ввести Название пакета (Package Name):
И нажимаем кнопку Create Package. В директории core/components/youpackagename создались необходимые файлы.
Теперь, нам необходимо написать схему будущей таблицы или таблиц. Очень подробно об этом расписано на одном из курсов Василия. Так же есть официальная документация.
Мы создадим простую табличку для примера:
Все, схема готова. Теперь, переходим на вкладку Create Table и нажимаем Create Tables. Теперь в базе у нас есть наша табличка:
Все. Теперь мы можем работать с нашей таблицей.
Так же есть отличное видео, в котором Артем Зернов рассказывает о других фишках при работе с 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.
Поблагодарить автора
Отправить деньги
Комментарии: 24
Никогда не задумывался что так можно. Интересный способ — и правда быстрее. Правда надо в XML схемах ориентироваться.
Но надо еще понимать, что в этом случае мы не получаем управление записями в табличке внутри админки, только через API.
Или MIGX и здесь может помочь?
Но надо еще понимать, что в этом случае мы не получаем управление записями в табличке внутри админки, только через API.
Или MIGX и здесь может помочь?
Может. Есть MIGX DB. Я потом статью напишу.
Хотя в админку проще через modExtra делать)
Хотя в админку проще через modExtra делать)
Как минимум более знакомо и управляемо.
Я потом статью напишу.@Михаил только не обманите :) Очень ждем! MIGX крутой но такой «тяжелый» оказался при освоении на практике…
Не обманул. Лови
Красавчик! Я пошел читать! Спасибо!
А кто какой modExtra пользуется? Самой первой, или последней?
Я пользуюсь обеими версиями)
Через CMPGenerator Pro тоже просто)) в 5 кликов) Но таблицу самому в БД создавать (но это не точно, просто я так делаю)
Подскажи пожалуйста как. Я пробовал — не получается. Даже заметку на днях написал: modx.pro/help/18126
Можно и в офф доку закинуть данную заметку.
офф доку MIGX?
Да. Сделаю
Вообще MIGX это прям золото для MODx. Один из самых полезных пакетов.
Миша, спасибо за статью!
Миша, спасибо за статью!
Только так и делал. Впервые увидел подобный способ у автора шопкипера (кстати в документации к 3 версии этот способ вроде был описан) и думал, что это достаточно известная фишка migx…
з.ы. А еще там можно собирать таблицы кнопочно-тыкочным путем, через конструктор и делать импорт и этих экспорт настроек. Дико удобная штука.
з.ы. А еще там можно собирать таблицы кнопочно-тыкочным путем, через конструктор и делать импорт и этих экспорт настроек. Дико удобная штука.
в MIGX все кажись кнопочно-тыкочным путем ))))
Миша, кстати ты не упомянул еще об одной интересной особенности MIGXdb. Схему можно не писать вручную, а создав «пустую» заготовку для объекта например, который просто наследует xPDOSimpleObject (в котором уже прописан конфиг создающий столбец id), затем создав таблицы для этого объекта — можно в phpmyadmin визуально добавлять все остальные поля, элементы и т.д. в эту таблицу, а потом на стороне MIGXdb просто нажать кнопку парсинга схемы и она сама сгенерирует нужную xml schema на основе существующей таблицы в БД.
Получается «обратный способ». Можно либо классическим способом создавать объекты, прописывая schema полностью, либо способом что я описал выше
Получается «обратный способ». Можно либо классическим способом создавать объекты, прописывая schema полностью, либо способом что я описал выше
А вот это не знал :-) лови плюс. Блин почему-то не ставиться плюс :-(
Здравствуйте! Я новичок в ModX. Создаю свою табличку по данной статье и после нажатия на кнопку Create Table таблички в базе данных не обнаруживаю. Как называется таблица в базе данных в этом примере?
В примере из статьи это таблица modx_electrica_items
Вероятнее всего, у вас ошибка в схеме, иных причин, почему таблица не создалась придумать сложно.
Стоит посмотреть в логах modx, может быть там ошибка написана.
Вероятнее всего, у вас ошибка в схеме, иных причин, почему таблица не создалась придумать сложно.
Стоит посмотреть в логах modx, может быть там ошибка написана.
Спасибо Алексей!!! Ошибся в схеме. Вот прям хочется картину заказать: «Сначала прочти логи, потом задавай вопросы» и дарить людям. Сегодня например себе)))
Вот таким достаточно простым способом можно быстро создавать свои таблицы и работать с ними.Простите за глупый вопрос, а где должен выполняться этот код?
Это я для примера в снипете сделал… Можно в плагине или просто в скрипте. В общем в любом удобном месте
Спасибо. А на какое событие должен этот плагин запускаться? Или если это скрипт — где разместить этот файл?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.