Инструменты пользователя

Инструменты сайта


limb3:ru:packages:dbal:lmb_table_gateway

lmbTableGateway

lmbTableGateway - класс, инкапсулирующий работу с одной таблицей базы данных.

lmbTableGateway содержит 3защищенных метода, которые можно перекрывать в дочерних классах для определения деталей таблицы:

  • _defineDbTableName() - позволяет указать название таблицы. Если этот метод не перекрыт, то lmbTableGateway отрезает часть DbTable от названия класса (например, CatalogDbTable) и использует первую часть в качестве названия таблицы.
  • _definePrimaryKeyName() - позволяет указать имя поля с первичным ключом. По-умолчанию равен 'id'.
  • _defineConstraints() - позволяет описать связи данной таблицы с другими таблицами. Используется при каскадном удалении. Полезно использовать с ранними версиями MySQL, где не поддерживается каскадное удаление.

Список полей таблицы lmbTableGateway получает автоматически.

Определение связанных таблиц (Constraints)

Метод _defineConstraints() возвращает массив вида «имя поля» ⇒ «массив связей». «массив связей» имеет такую структуру array(«table_name» ⇒ «название таблицы», «field» ⇒ «название поля»).

Пример ниже.

Пример lmbTableGateway

require_once(LPKG_CORE_DIR . '/core/db/lmbTableGateway.class.php');
 
class PlayerDbTable extends lmbTableGateway
{
  function _defineDbTableName()
  {
    return 'player';
  }
 
  function _defineConstraints()
  {
    return array(
      'id' =>	array(
          0 => array(
            'table_name' => 'contract',
            'field' => 'player_id',
          ),
      ),
    );
  }
} 

Использование lmbTableGateway

Список часто используемых методов:

  • deleteById($id) - удаляет запись из таблицы с указанным идентификатором.
  • delete($criteria) - удаляет записи из таблицы по условию. Условие здесь - это объект из подсистемы Criteria.
  • updateById($id, $data) - обновляет запись в таблице с указанным идентификатором.
  • update($row, $сriteria) - обновляет записи в таблице, удовлетворяющие услови. Условия определяются так же, как и для удаления.
  • selectRecordById($id) - возвращает запись из таблицы с указанным идентификатором. Запись - это объект, поддерживающий интерфейс DataSource.
  • select($criteria, $sort_params, $fields) - вовзращает записи из таблицы, удовлетворяющие условию. Условие здесь - это объект из подсистемы Criteria.

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
   _  __   __ __   ____   ____  ____
  | |/_/  / // /  /  _/  /  _/ /_  /
 _>  <   / _  /  _/ /   _/ /    / /_
/_/|_|  /_//_/  /___/  /___/   /___/
 
limb3/ru/packages/dbal/lmb_table_gateway.txt · Последние изменения: 2010/11/10 10:02 (внешнее изменение)