svandragt / silverstripe-hiddenfields
此包已被弃用且不再维护。未建议替代包。
通过 $hidden_fields 指定的表单字段,并在编辑表单中隐藏它们。
dev-master
2016-04-14 08:38 UTC
Requires
This package is not auto-updated.
Last update: 2020-01-19 17:09:45 UTC
README
通过 $hidden_fields 指定要隐藏的表单字段,并在编辑表单中隐藏它们。我发现如果您完全删除字段,则值不会被保存到数据库中,并且您最终会得到一个没有父关系的子记录。
相反,此扩展会将字段替换为隐藏字段。
使用方法
- 使用 composer 安装
composer require "svandragt/silverstripe-hiddenfields:*"
- 通过配置系统将数据扩展附加到您的数据对象/页面类型
Object::add_extension("DataObject","HiddenFieldsDataExtension");
DIY 演示
Course.php
<?php
class Course extends DataObject {
public static $db = array(
'Title' => 'Varchar(500)',
);
public static $has_many = array(
'CourseDates' => 'CourseDate',
);
}
CourseDate.php
<?php
class CourseDate extends DataObject {
public static $db = array(
'StartDate' => 'Date',
'EndDate' => 'Date',
);
public static $has_one = array(
'Course' => 'Course'
);
public static $hidden_fields = array(
'CourseID'
);
}
CourseModelAdmin.php
<?php
class CourseModelAdmin extends ModelAdmin {
public static $managed_models = array(
'Course',
'CourseDates',
);
static $url_segment = 'courses'; // Linked as /admin/products/
static $menu_title = 'Course Admin';
}
执行 /dev/build 并在 CMS 中创建一个新的课程。保存后,当访问 CourseDates 标签时,您将看不到选择与日期相关的课程(在这种情况下,它将自动保存来自父-子关系的值)。