【问题标题】:silverstripe 4 - Render UserDefinedForm on custom page templatessilverstripe 4 - 在自定义页面模板上呈现 UserDefinedForm
【发布时间】:2018-12-02 21:37:23
【问题描述】:

我需要一些关于将 SS3 转换为 SS4 的帮助。我想在另一个页面以及我的默认联系人页面上呈现我的联系表单。我设法让它在 SS3 中工作,但在 SS4 中情况有点不同,我不知道如何编写函数或将它放在哪里。我尝试了很多组合和位置,但我需要帮助。

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

类 IndexPage_Controller 扩展 Page_Controller {

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

}

什么/我应该将函数放在 SS4 中的什么位置,以便在自定义页面模板上呈现表单字段,就像在“联系我们”页面上一样?

提前谢谢你。

【问题讨论】:

    标签: php silverstripe silverstripe-4


    【解决方案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();
        }
    

    【讨论】:

    • 非常感谢。我不得不稍微调整一下,现在这对我有用。公共函数 Form() { $page = \SilverStripe\UserForms\Model\UserDefinedForm::get()->filter(['URLSegment' => 'contact-me'])->First(); $controller = \SilverStripe\UserForms\Control\UserDefinedFormController::create($page);返回 $controller->Form(); }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-09
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多