【问题标题】:How to publish pages via Model Admin in SilverStripe 4?如何在 SilverStripe 4 中通过 Model Admin 发布页面?
【发布时间】:2018-03-07 01:37:49
【问题描述】:

我已经创建了下面给出的页面、数据对象和模型管理。

页面

class MyPage extends Page {

  private static $db = [];
  private static $singular_name = "My Page";
  private static $plural_name = "My Pages";
  private static $description = 'A page created for testing';
}

数据对象

use SilverStripe\ORM\DataObject;

class MyDataObject extends DataObject {

  private static $db = [
    'Test' => 'Int'
  ];
}

模型管理员

<?php

use SilverStripe\Admin\ModelAdmin;

class MyAdmin extends ModelAdmin  {

    private static $managed_models = [
        'MyPage',
        'MyDataObject'
    ];

    private static $url_segment = 'my-pages';
    private static $menu_title = 'My Page Admin';
}

当我创建一个新的“MyDataObject”时,它会在我单击保存按钮时创建并发布该对象。但是当我创建一个“我的页面”时,点击保存按钮后它仍然是一个草稿。我必须从 Pages Tree 打开页面并点击 Publish 按钮来发布页面。

【问题讨论】:

    标签: silverstripe silverstripe-4


    【解决方案1】:

    页面默认是版本化的,数据对象不是。

    https://docs.silverstripe.org/en/4/developer_guides/model/versioning/

    【讨论】:

    • 感谢 asdfsf。 :)
    【解决方案2】:

    您必须更改页面代码,如下所示。 (只需添加这一行 - 私有静态 $versioned_gridfield_extensions = true; )

    <?php
    
    class MyPage extends Page {
    
      private static $versioned_gridfield_extensions = true;
    
      private static $db = [];
      private static $singular_name = "My Page";
      private static $plural_name = "My Pages";
      private static $description = 'A page created for testing';
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-08
      • 2010-10-31
      • 1970-01-01
      • 2014-03-07
      • 2018-10-14
      • 1970-01-01
      • 2011-01-07
      相关资源
      最近更新 更多