Silverstripe 使用RenderWith方法将表单传递给模板

Silverstripe 使用RenderWith方法将表单传递给模板,silverstripe,Silverstripe,我正在使用Willr的Silverstripe注释模块以及DataObjects作为页面的实现 comments模块允许您将注释附加到数据对象—我已经完成了。我遇到的问题是,当我尝试使用renderwith将customfields从Datobject传递到模板时,传递的CommentsForm会呈现表单,但不会将通过传递的表单所做的任何注释与DataObject关联 以下是我在PostsPageHolder上的操作和渲染方法: public function view($request

我正在使用Willr的Silverstripe注释模块以及DataObjects作为页面的实现

comments模块允许您将注释附加到数据对象—我已经完成了。我遇到的问题是,当我尝试使用renderwith将customfields从Datobject传递到模板时,传递的CommentsForm会呈现表单,但不会将通过传递的表单所做的任何注释与DataObject关联

以下是我在PostsPageHolder上的操作和渲染方法:

    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()数组传递表单吗?

请尝试
自定义(数组)
,如图所示


解决了这个问题-您需要传递'CommentsForm'=>$obj->CommentsForm()
return $this->customise(array(
    'Object'        => $obj,
    'Type'          => $obj->Type,
    'Title'         => $obj->Title,
    'Entry'         => $obj->Entry,
    'CommentsForm'  => $obj->CommentsForm
))->renderWith(
    array('PostsPage_view_news', 'Page')
);