【发布时间】:2019-02-22 01:02:58
【问题描述】:
我目前正在从事的 Silverstripe 项目有一个 Object,其字段名为 Code:
class ObjectName extends DataObject
{
private static $db = [
'Title' => 'Varchar',
'Code' => 'Varchar',
'Description' => 'HTMLText',
];
以下 URL 将在 CMS 中打开创建新对象屏幕(在本地开发中):http://localhost.app/admin/object-management/ObjectName/EditForm/field/ObjectName/item/new
我们希望能够在该 URL 上附加一些内容,以预填充新对象的 Code 字段。
例如http://localhost.app/admin/object-management/ObjectName/EditForm/field/ObjectName/item/new?Code=CodeGoesHere
在当前框架内这可能吗?还是需要对 CMS 进行自定义修改?如果需要自定义修改,我应该使用什么方法?
【问题讨论】:
-
在后端如果没有对新创建的项目进行适当的验证,这听起来很可怕。您可以连接到
DataObject::populateDefaults()并检查Controller::curr()->request->getVars()以预填充新项目。 -
您是否使用
GridFieldDetailForm搭建用于编辑该对象的表单?
标签: silverstripe silverstripe-4