Model-View-Controller част 3 - Използване на BD
В първите две части, научихме как да се изгради един прост компонент модел-изглед-контролер. В резултат на това има един компонент на Представителството (Изглед), която получава данни от модели, създадени през втората урока. Сега, ние ще работим с модела за получаване на данни от таблица в база данни.
Тя ще покаже, как да се използват JDatabase клас за работа с базата данни.
Получаване на данни
Нашият модел в момента има един метод: getGreeting (). Този метод е много прост - всичко това тази функция е - върнете твърдо кодирана поздрав.
За да работите с база данни, да качвате поздрави в таблицата с база данни.
Когато инсталирате компонент необходимо да се създаде таблица с рекорд на текстовото поле с поздрав. Как да се създаде SQL файл и добавяне на всеки низ в hello.xml, помислете за по-късно.
За да започнете, сменете кода в модела, за да се получи поздрав от таблица на база данни.
На първо място трябва да се свърже с базата данни. В Joomla 1.5 всички параметри за връзките вече са там, за да създадете свой собствен с помощта на следното:
JFactory - статичен клас, който се използва за свързване на много места на системата. Подробна информация за този клас може да се намери в документацията на API.
За да се свържете с базата данни използва методът на getDBO.
Две стъпки за получаване на поздрава:
Запазване на заявката, за да получите обект на базата данни;
За да се направят промени в модела в getGreeting на метод () (/models/hello.php):
$ Db-> loadResult () метод ще сверки с базата данни и връща получения обект. Повече информация за този метод може да се намери в JDatabase справка API. както и да проучи други методи JDatabase клас.
SQL за създаване на инсталационен файл (/admin/install.sql)
Joomla 1.5 инсталатор има вградена поддръжка за изпълнение на SQL заявки в компонент инсталацията. Тези искания трябва да се съхраняват в стандартен файл install.sql.
За инсталиране на SQL файл с помощта на три заявки:
- Изтриването на маса, в случай на същото име вече съществува.
- Създайте таблица и текстово поле за съхранение на поздрав линия.
- Зареждане поздрав линия в областта на маса.
По-долу са трите искания за инсталационния файл:
самата Joomla заменя "#__" на представката на базата на текущата база данни MySQL. първата таблица на заявка е унищожена #__hello, е необходимо, за да се избегне припокриване с повтарящи се единици на едно и също компонент.
Според второто искане се създава две полета в таблицата. 1. `ID` - което е ключът, който гарантира уникалността на записи. 2. `greeting` - низ от 25 символа, които ще се съхраняват поздрав.
Запазете тези искания install.sql файл и да го плъзнете към компонента за разпределение на пътя - /admin/install.sql.
Създаване деинсталирате SQL файл, (/admin/uninstall.sql)
Когато деинсталирате компонент е необходимо да се откажа от таблици, които са били създадени от инсталирането на това, но винаги трябва да се има предвид, че потребителят може да изтриете случайно компонент. Така че по този начин той не се изтрива данните ми в таблиците в базата данни, е необходимо да се изисква доказване на такова действие:
Запазете тези искания uninstall.sql файл и да го плъзнете към компонента за разпределение на пътя - /admin/uninstall.sql.
Освен Skid в инсталационния файл (hello.xml)
Преди да можете да определите кои файлове да се използва за инсталиране и деинсталиране да тече SQL заявки, трябва да посочите къде да се копират тези файлове. Двата файла трябва да са в основата на административната част на пакети за компонент. На следващо място, уточни кои файлове на инсталатора да използвате SQL заявката за когато инсталирате и деинсталирате на компонента.
Новият кодекс за инсталирането на XML файл:
Когато инсталиране и деинсталиране може да има две стойности в набора от знаци атрибут, на първо място - "utf8", а ако версията на MySql сървър не поддържа utf8 кодировка атрибут определя "не-utf8"
Умение шофьор все още може да има само един смисъл - "MySQL". В бъдеще ние планираме да разширим възможностите на Joomla 1.5 за работа с различни бази данни.
заключение
Сега компонента "Hello" може да работи не само с рамкови класовете MVC, но класовете JDatabase искания. Вече можете да създавате компоненти, работещи на технологията MVC използване таблиците в базата данни, определящи инсталатор настройки.