Модель: различия между версиями
V0yager (обсуждение | вклад) Нет описания правки |
V0yager (обсуждение | вклад) Нет описания правки |
||
Строка 31: | Строка 31: | ||
} | } | ||
?> | ?> | ||
==Инициализация модели в контроллере== | |||
Для того чтобы инициализировать модель в контроллере достаточно создать метов initModel и в нём выполнить $this->model = new siteModel(); | |||
function initModel() { | |||
$this->model = new siteModel(); | |||
} |
Версия от 19:00, 12 февраля 2013
Модель это класс для работы с БД
файлы классов моделей располагаются в папке models определённого плагина. Имя файла модели должно всегда оканчиваться на Model. т.е. в случае user модели имя файла должно выглядеть как usersModel.php
- Все модели должны наследоваться от родительского класса DbModel
Внутри модели есть несколько основных методов для работы с БД
s_fetchAll($sql) - выбирает набор строк, возвращает результат запроса как многомерный массив где на первом уровне содержаться строки, на втором, столбцы
s_fetchRow($sql) - выбирает одну строку, возвращает результат запроса как одномерный массив, где ключами являются имена столбцов, а значения, их значения соответственно
s_fetchCol($sql) - выбирает столбец, возвращает одномерный массив, содержащий результат выборки (каждый элемент - одна ячейка)
s_fetchOne($sql) - выбирает единственное значение
а также метод pq для вставки, обновления, удаления данных
Пример - если нам надо выбрать всех пользователей то наша модель должна выглядеть следующим образом
<?php class usersModel extends DbModel { function getUsers() { return $this->s_fetchAll("select * from users"); } } ?>
Инициализация модели в контроллере
Для того чтобы инициализировать модель в контроллере достаточно создать метов initModel и в нём выполнить $this->model = new siteModel();
function initModel() { $this->model = new siteModel(); }