«Как работает маршрутизация» и «Работа с БД»: разница между страницами

Материал из GLENN CMS WIKI
(Различия между страницами)
Перейти к навигации Перейти к поиску
Нет описания правки
 
Нет описания правки
 
Строка 1: Строка 1:
По умолчанию вызываемый урл транслируется как /plugin/controller/action, но каждый плагин может с помощью файла system/routes.php добавлять кастомные маршруты там указывается урл и какие он будет вызывать /плагин/контроллер/экшн
Работа с БД организована через класс ormModel (/cms/system/ormModel.php), который расширяет /cms/system/dbModel.php


Примеры


Если нам надо осуществить какие-то действия с таблицей users, схемы public - инициируем класс


$router = Zend_Controller_Front::getInstance()->getRouter();
$model = ormModel::init('public','users');


$route = new Zend_Controller_Router_Route(
Чтобы добавить новую записсь - вызываем
    '/:lng/video',      /// lng - переменная которая перейдёт как параметр в экшн
$model->newItem([
    array(
  'name' => 'Валера',
        'module'   => 'video',   ///  плагин
   'email' => 'valera@yandex.ru'
        'controller'   => 'index',  /// контроллер
  ]);
        'action'   => 'index',    //// экшн
        'type'      => 'yt'      //// дополнительня фиксированная переменная
    ),
    array('lng' => '[a-z]{2}')    //// она будет считаться переменной только если будет соответствовать такому формату
);


$router->addRoute('video_rou',$route);
`name и email - поля в таблице users`
 
Чтобы обновить запись
$model->updateItem($fields, $where);
 
$model->updateItem([
    'name'=>'Герман'
], 'id='.(int)$this->params['id']);
 
 
Чтобы получить ячейку
$model->s_fetchOne("select name from public.users where id=".(int)$this->params['id'])
 
или
 
$model->get("name","id=".(int)$this->params['id']);
 
 
 
Чтобы получить строку
$userData = $model->getRow("id=".(int)$this->params['id']);
 
или
 
$userData = $model->s_fetchRow("select * from users where id=".(int)$this->params['id']);
 
 
Чтобы получить набор строк
$users = $model->getAll("name='valera'")
 
или
$users = $model->s_fetchAll("select * from users where name='valera'");

Версия от 12:48, 13 сентября 2022

Работа с БД организована через класс ormModel (/cms/system/ormModel.php), который расширяет /cms/system/dbModel.php


Если нам надо осуществить какие-то действия с таблицей users, схемы public - инициируем класс

$model = ormModel::init('public','users');

Чтобы добавить новую записсь - вызываем

$model->newItem([
  'name' => 'Валера',
  'email' => 'valera@yandex.ru'
]);

`name и email - поля в таблице users`

Чтобы обновить запись

$model->updateItem($fields, $where);
$model->updateItem([
   'name'=>'Герман'
], 'id='.(int)$this->params['id']);


Чтобы получить ячейку

$model->s_fetchOne("select name from public.users where id=".(int)$this->params['id'])
или
$model->get("name","id=".(int)$this->params['id']);


Чтобы получить строку

$userData = $model->getRow("id=".(int)$this->params['id']);
или
$userData = $model->s_fetchRow("select * from users where id=".(int)$this->params['id']);


Чтобы получить набор строк

$users = $model->getAll("name='valera'")
или

$users = $model->s_fetchAll("select * from users where name='valera'");