silverstripe 4-在自定义页面模板上呈现UserDefinedForm

时间:2018-12-02 21:37:24

标签: php silverstripe silverstripe-4

在将SS3转换为SS4时,我需要一些帮助。我想在其他页面以及默认的“联系人”页面上显示我的联系方式。我设法使其在SS3中工作,但在SS4中有所不同,我不确定如何编写函数或将其放置在何处。我尝试了很多组合和位置,但需要帮助。

在SS3中,我使用其字段创建了UserDefineForm页面。然后,将以下内容添加到我也希望表单也呈现的自定义页面中:

IndexIndex_Controller类扩展了Page_Controller {

// Sign up form
public function SignupForm(){
    $get = DataObject::get_one('SiteTree', "URLSegment = 'contact-me'");
   return new UserDefinedForm_Controller($get);
}

}

该函数在SS4中的什么位置/何处放置,以便使表单字段像在“联系我们”页面上一样显示在自定义页面模板上?

谢谢。

1 个答案:

答案 0 :(得分:1)

下面的代码应该可以工作。

public function getSignupForm()
    {
        $page = \SilverStripe\UserForms\Model\UserDefinedForm::get()->filter('URLSegment', 'contact-me')->first();
        $controller = \SilverStripe\UserForms\Control\UserDefinedFormController::create($page);
        return $controller->Form();
    }