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

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


limb3:ru:packages:wact:tags:lmb_fetch_tags:lmb_active_record_fetch_tag

<active_record:fetch>

Описание

<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 шаблона.

Атрибуты

  • using - путь до ActiveRecord класса (без .class.php) или просто имя класса. Если указано только имя класса - то класс должен быть включен (определен) до активации шаблона или должна быть возможность получить расположение класса при помощи __autoload(). В версии WEB_APP 0.1 для задания имени класса ActiveRecord использовался атрибут class_path. В версии WEB_APP 0.2 можно использовать и class_path, и using.
  • find - суффикс названия find-метода дочернего класса от lmbActiveRecord. Например, find='kids_for_parent' приведет к вызову метода findKidsForParent().

Назначение остальных атрибутов аналогично тегу <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>.

Обсуждение

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