ホーム > perl > それTemplate::Stash::Contextで

それTemplate::Stash::Contextで

  • 投稿者: chiba
  • 2007/6/20 水曜日 4:00:21
  • perl

ちと古い話題だけど、
TTでDBICのhas_manyなメソッドを使う
TTでDBICのmany_to_manyなメソッドを使う
[% WHILE %] の中のこと その後
ここら辺で問題になっていた

何を言いたいかというと、TTでhas_manyで定義した子オブジェクトの結果一覧を取得するメソッド(ここではcomments)にアクセスするとイテレーターではなく配列のリファレンスとして扱われるので大変面倒。

それ、Template::Stash::Contextでもいけますですよ。

(Catalystの場合)MyAPP::View::TT

__PACKAGE__->config(
STASH => Template::Stash::Context->new(),
);

こうして、Viewのほうでは

<html><body>
<ul>
[% WHILE (topic = topics.next) %]
<li>
[% topic.title %]
: comments([% topic.comments.scalar.count %])
</li>
[% END %]
</ul>
</body>
</html>

こんな感じで。これだとmany-to-manyでもたぶんいける。(試してないけど)

ただ、自分はTemplate::Stash::Filtersを使ってるので結局使えなかったり。
うーんなんとかしたい。というか、Stashをauto-filter的な使い方してるのが間違っているのかもしれないけど。。。
追記
なんとかしてみた->Template::Stash::FiltersでTemplate::Stash::Contextを併用する方法

はてなブックマーク - それTemplate::Stash::Contextで

コメント:0

コメントフォーム
入力した情報を記憶する

トラックバック:0

この記事のトラックバック URL
https://blog.everqueue.com/chiba/2007/06/20/15/trackback/
トラックバックの送信元リスト
それTemplate::Stash::Contextで - へぼい日記 より

ホーム > perl > それTemplate::Stash::Contextで

検索
フィード
メタ情報

ページの上部に戻る