Модели таблиц
Для работы с таблицами базы данных НУЖНО использовать модели таблиц.
Для этого в папке модуля Models требуется добавить все относящиеся к модулю таблицы в виде классов в своих отдельных файлах.
Класс ДОЛЖЕН наследоваться от класса \Zend_Db_Table_Abstract, который дает требуемую функциональность.
Далее, в таком классе обязательно ДОЛЖНО быть указано название таблицы в параметре $_name, остальные данные опциональны.
Таким образом если таблица в базе данных называется mod_orders_products, то файл ДОЛЖЕН иметь в своем названии
такое же название, но без приставки mod_ в формате CamelCase. Соответственно так же должен называться и класс.
РЕКОМЕНДУЕТСЯ добавлять названия таких моделей в docblock контроллера модуля, для более удобной работы в IDE.
Пример
/**
* @property \TableOrders $dataTableOrders
* @property \TableOrdersProducts $dataTableOrdersProducts
*/
class ModOrderingController extends Common {}
В классе можно добавлять методы для получения объектов строк, РЕКОМЕНДУЕТСЯ называть их начиная с getRowBy или getRowsBy
и далее указывать поля ко которым будет происходить выборка, например getRowById.
Внутри класса РЕКОМЕНДУЕТСЯ работать только с данными этой таблицы, к которой он относится.
Пример файла
/**
*
*/
class TableOrdersProducts extends Zend_Db_Table_Abstract {
protected $_name = 'mod_orders_products';
/**
* Получение объекта по id
* @param int $id
* @return Zend_Db_Table_Row_Abstract|null
*/
public function getRowById(int $id):? Zend_Db_Table_Row_Abstract {
$select = $this->select()->where("id = ?", $id);
return $this->fetchRow($select);
}
}