<active_record:fetch> - это расширение для тега <fetch>, которое в качестве источника данных использует ActiveRecord-ы. <active_record:fetch> настроен таким образом, что по-умолчанию использует только lmbActiveRecordFetcher класс, в отличие от <fetch> тега, для котогого можно указать любой fetcher.
<active_record:fetch> позволяет получать данные как при помощи стандартных методов класса lmbActiveRecord, так и при помощи новых find-методов дочерних от lmbActiveRecord классов.
см. также разделы:
<active_record:fetch> тег является WactRuntimeComponentTag и создает активный компонент класса lmbActiveRecordFetchComponent.
<active_record:fetch using='active_record_class_name' target='target1[,target2...]' [navigator='pager_name'] [first|one] [order='order_params'] [offset='offset'] [limit='limit']/>
В любом месте WACT шаблона.
Назначение остальных атрибутов аналогично тегу <fetch>.
Дочерние теги <fetch:params>, <fetch:decorate>, а также <find:params>, если используется атрибут find.
Допустим у нас есть класс Node:
class Node extends ActiveRecord { static function findKidsForParent($parent_id) { $sql = 'SELECT * FROM node WHERE parent_id ' . (int)$parent_id; return lmbActiveRecord :: findBySql('Node', $sql); } }
Для вызова этого метода прямо в шаблоне можно использовать, например, :
<active_record:fetch using="/src/model/Node" target="kids" find="kids_for_parent"> <find:params parent_id='{$#request.id}'/> </active_record:fetch>
см. также раздел "Использование ACTIVE_RECORD в шаблонах WACT", где есть различные примеры использования тегов <active_record:fetch> и <find:params>.
Обсуждение