Создаем таблицу в базе данных
В Magento очень удобно управлять таблицами базы данных. Тут используется такой подход:
Создается файл, во котором реализуется функционал управления таблицей (создания, редактирования и т.д.),
имя файла содержит номер версии (например: install-1.0.0.php), после обновления страницы, Magento выполнит функционал, описанный в файле и сделает запись об этом в таблице core_resource.
Если мы создаем таблицу - мы создаем файл, который начинается на install (например: install-1.0.0.php), для изменения таблицы - имя файла должно начинаться с update (например: update-1.0.0.php)
Создаем папки:
app/code/local/My/Articles/sql app/code/local/My/Articles/sql/marticles_setup
Создаем файл:
app/code/local/My/Articles/sql/marticles_setup/install-1.0.0.php
С кодом:
<?php die('Setup'); $installer = $this; $installer->startSetup(); $installer->run("CREATE TABLE my_articles ( `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `title` VARCHAR(255) NOT NULL, `header_h1` VARCHAR(255) NOT NULL, `meta_tag_keywords` VARCHAR(255) NOT NULL, `meta_tag_description` VARCHAR(255) NOT NULL, `image` VARCHAR(255) NOT NULL, `preview` TEXT NOT NULL, `content` TEXT NOT NULL, `created` DATETIME, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); $installer->endSetup();
В этом файле мы добавляем параметры (см. комментарии)
Код для добавления таблиц в базу:
<?xml version="1.0" ?> <config> <modules> <My_Articles> <version>1.0.0</version> </My_Articles> </modules> <!-- Код для контроллера --> <frontend> <routers> <marticles> <use>standard</use> <args> <module>My_Articles</module> <frontName>articles</frontName> </args> </marticles> </routers> </frontend> <global> <!-- Код для добавления таблиц в базу --> <myarticles_recource> <class>My_Articles_Model_Resource</class> <entities> <table_myarticles> <table>my_articles</table> </table_myarticles> </entities> </myarticles_recource> </global> </config>
Обновляем страницу в браузере. Должны увидеть текст: Setup.
Убираем строку:
die('Setup');
и опять обновляем страницу в браузере.
После этого, у вас в базе должна появиться таблица my_articles, а в таблице core_resource появится запись code: myarticles_setup.
Если нужно переустановить таблицу - можно удалить ее из базы и удалить запись в таблице core_resource.
После обновления любой страницы, изменения попадут в базу, а в таблицу core_resource запись с частью имени блока (в нашем случае myarticles) и при следующих обновлениях выполняться фалы не будут. Если мы хотим еще добавить таблицы или что-то изменить - создаем файл с другой уникальной версией.
Комментарии
Неправильно написан "Код для добавления таблиц в базу" в config.xml . Наверное правильно будет так:
Ответить<resources>
<marticles_setup>
<setup>
<module>My_Articlesr</module>
</setup>
</marticles_setup>>
</resources>
не рабочий код
Ответить