0

私はWillrによるSilverstripeコメントモジュールをPagesとしてのDataObjectsの実装とともに使用しています。

コメントモジュールを使用すると、データオブジェクトにコメントを添付できます。これは私が行ったことです。私が抱えている問題は、renderwithを使用してDatobjectからテンプレートにカスタムフィールドを渡そうとすると、渡されるCommentsFormがフォームをレンダリングしますが、渡されたフォームを介して行われたコメントをDataObjectに関連付けないことです。

PostsPageHolderのアクションとrenderWithメソッドは次のとおりです。

    public function view($request) {
    $segment = $request->param('ID');

    if ($obj = Post::get()->filter('URLSegment', $segment)->First()) :
        switch ($obj->Type) {
            case 'News-Post' :
                return $this->renderWith(
                    array('PostsPage_view_news', 'Page'),
                    array(
                        'Object'        => $obj,
                        'Type'          => $obj->Type,
                        'Title'         => $obj->Title,
                        'Entry'         => $obj->Entry,
                        'CommentsForm'  => $obj->CommentsForm
                    )
                );
                break;
    ...
}

RenderWith()配列を使用してフォームをパススルーする方法を知っている人はいますか?

4

1 に答える 1

2

customise(array)ここに示すように試してください https://docs.silverstripe.org/en/3/tutorials/site_search/#showing-the-results

return $this->customise(array(
    'Object'        => $obj,
    'Type'          => $obj->Type,
    'Title'         => $obj->Title,
    'Entry'         => $obj->Entry,
    'CommentsForm'  => $obj->CommentsForm
))->renderWith(
    array('PostsPage_view_news', 'Page')
);
于 2012-12-05T19:20:39.177 に答える