Jump to main content Jump to doc navigation

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

Установите MIGX и откройте его. На вкладке Package Manager введите имя пакета:

Нажмите Create Package. В каталоге core/components/youpackagename появятся нужные файлы. Теперь опишите схему будущей таблицы или таблиц. Подробно это разобрано в одном из курсов Basil. Есть и официальная документация.

Создадим простую таблицу-пример:

<?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
// Add a package
if(!$modx->addPackage('electrica', MODX_CORE_PATH . 'components/electrica/model/')){
    return 'false';
}
// Create a record
$table = $modx->newObject('electricaItem');
$array = [
    'title' => 'What is the title',
    'description' => 'What is the description'
    ];

$table->fromArray($array);
$table->save();

// Do a sample
$response = $modx->getIterator('electricaItem');

foreach($response as $res){
    print_r($res->toArray());
}

Так вы быстро создаёте свои таблицы и работаете с ними.

Support the team building MODX with a monthly donation.

The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.

Backers

  • modmore
  • STERC
  • Digital Penguin
  • Jens Wittmann – Gestaltung & Entwicklung
  • CrewMark
  • Fabian Christen
  • Sepia River Studios
  • Dannevang Digital
  • Alex
  • A. Moreno
  • Chris Fickling
  • Stéphane Jäggi
  • Murray Wood
  • Anton Tarasov
  • deJaya
  • JT Skaggs
  • Lefthandmedia
  • eydolan
  • Following Sea
  • Guido Gallenkamp
  • YJ
  • Raffy
  • Snow Creative
  • Nick Clark
  • Guest
  • Helen
  • krisznet
  • Yanni
  • Richard

Budget

$204 per month—let's make that $500!

Learn more