2

CompleteLister の各行に単純なフォームを追加したいと考えています。私はこれを試しました:

<?php
class page_list extends Page {
    function init(){
        parent::init();

        $l = $this->add('Lister_Comment',null,'comm_list_spot','comm_list_spot');
        $l->setModel('Comment');
    }
    function defaultTemplate(){
        return array('view/comment_list');
    }
}
class Lister_Comment extends CompleteLister {
    function formatRow(){
        parent::formatRow();

        $f = $this->add('Form');
        $f->addField('line','com_text');
        $f->addSubmit();
        $this->current_row_html['commm'] = $f->getHTML();
    }

}
?>

`しかし、うまくいきません。私は何を間違っていますか?

ありがとうございました。

4

1 に答える 1

0

フォームはデリケートなビューであり、レンダー ツリーに適切に配置する必要があります。これをより適切に実装する方法は次のとおりです。

  1. モデルを手動で反復する
  2. 反復内で、リスターの行のコンテンツを含むビューを追加します
  3. add() の 3 番目の引数を使用して、comm タグ内に新しいフォームを追加します。

これははるかにうまくいくはずです。

于 2013-04-16T16:09:21.020 に答える