【问题标题】:Silverstripe Elemental Module redirects to frontend 404 page on element saveSilverstripe 元素模块在元素保存时重定向到前端 404 页面
【发布时间】:2018-01-17 09:43:33
【问题描述】:

我使用 dnadesign/silverstripe-elemental 2.x-dev 和 Silverstripe 4.0.1。

我为页面创建了一个模块来保存所有页面。这就是我将扩展添加到主页的方式。

    XYPage\Model\HomePage:
      extensions: 
        - DNADesign\Elemental\Extensions\ElementalPageExtension

这是我的主页控制器:

    namespace XYpage\Controller;

    use PageController;

    class HomePageController extends PageController
    {
    }

这是我的 HomePageModel:

    namespace XYpage\Model;

    use Page;
    use XYpage\Controller\HomePageController;
    class HomePage extends Page
    {

     private static $table_name = 'HomePage';

     /**
     * As our controller resides in a different namespace we have to 
     overwrite this method
     *
     * @return string
     */
     public function getControllerName()
     {
      return HomePageController::class;
     }
    }

我将模板变量更改为 $ElementalArea。我在后端看到了预期的 UI。

现在,如果我在后端保存一个元素,我总是会被重定向到前端到 404 页面。

当我切换回后端时,元素会链接到页面。

如果我在 Content Element 上向 WYSIWYG 编辑器填写内容并将其保存,则内容将显示在前端的页面上。

如果我尝试编辑该元素会错过内容的所见即所得编辑器。

我努力解决这个问题,红色的文档,但我不明白我做错了什么。

【问题讨论】:

    标签: php silverstripe silverstripe-4


    【解决方案1】:

    BetterButtons 和 DNADesign Elemental 存在问题。

    只需添加它以同时禁用 ElementContent 的 BetterButtons。

    DNADesign\Elemental\Models\ElementContent:
      better_buttons_enabled: false
    

    【讨论】:

      【解决方案2】:

      你有两个问题我可以立即看到:

      1:您的 YAML 配置引用了 XYPage\HomePage,其中类的命名空间实际上是 XYPage\Model\HomePage。我怀疑这实际上是您的示例中的错误,而不是您的实际项目,因为您说元素编辑器正在 CMS 中工作。

      2:您的getControllerName() 方法返回HomePageController::class,它没有在类中导入,因此它将解析到与模型相同的命名空间(XYPage\Model\HomePageController)。虽然 this is the default/expected location 用于 SiteTree 控制器,但重载此代码意味着一切都由您来决定!将use XYPage\Controller\HomePageController; 添加到您的类定义中。

      【讨论】:

      • 感谢您的回答。抱歉不够精确,您指出的错误实际上仅在我的问题中。我现在有点绝望。
      • 对。请提供一个可以复制的示例。
      • 示例会是什么样子?缺少什么信息?
      【解决方案3】:

      经过大量调试后,我发现了导致这种行为的原因。就我而言,一个问题是我使用 unclecheese/silverstripe-gridfield-betterbuttons 和 elemental。

      下一个问题是反应错误:

      【讨论】:

        猜你喜欢
        • 2017-05-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多