lssexampl-03-ref
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версия | |||
| lssexampl-03-ref [2024/07/08 13:00] – внешнее изменение 127.0.0.1 | lssexampl-03-ref [2026/04/28 12:48] (текущий) – [Создание контроллеров источников данных] madmin | ||
|---|---|---|---|
| Строка 94: | Строка 94: | ||
| Контроллеры источников данных **DataSource** размещаются в папке **php/ | Контроллеры источников данных **DataSource** размещаются в папке **php/ | ||
| - | В корне папки **php/ | + | В корне папки **php/ |
| - | Реализуем в нем проверку на уникальность содержимого поля **name**. Эта проверка и так есть - за счет уникального индекса на сервере PostgreSQL, см файл **sql/ | + | |
| - | < | + | |
| - | alter table " | + | |
| - | </ | + | |
| - | Эта проверка на уникальность происходит при завершении транзакции, | + | |
| - | Добавим проверку на уникальность, | ||
| - | < | ||
| - | <?php | ||
| - | class DataSource_Repair_Ext extends DataSource_Repair { | ||
| - | /// переопределяем проверку после правки строки | ||
| - | protected function onRowValid(& | ||
| - | { // проверка значения поля name на уникальность - для более понятного пользователю сообщения об ошибке | ||
| - | $sql_name=$this-> | ||
| - | $sql_id=$this-> | ||
| - | $sql=<<< | ||
| - | select count(*) as n | ||
| - | from | ||
| - | " | ||
| - | where | ||
| - | " | ||
| - | " | ||
| - | SQL; | ||
| - | $rec=$this-> | ||
| - | if ($rec[' | ||
| - | } | ||
| - | } | ||
| - | } | ||
| - | return new DataSource_Repair_Ext(); | ||
| - | </ | ||
| - | Обратите внимание: | ||
| - | * класс унаследован от автоматически сформированного контроллера **DataSource_Repair** | ||
| - | * в конце программного кода создается и возвращается экземпляр описанного в файле контроллера **DataSource_Repair_Ext** | ||
| - | Сравните, | ||
| ==== Создание пунктов меню, для вызова экранных форм справочников ==== | ==== Создание пунктов меню, для вызова экранных форм справочников ==== | ||
| Главное меню проекта описывается в XML файле **php/ | Главное меню проекта описывается в XML файле **php/ | ||
lssexampl-03-ref.txt · Последнее изменение: 2026/04/28 12:48 — madmin
