带有星号的必需但依赖字段的OctoberCMS验证问题

时间:2017-09-13 06:10:15

标签: php octobercms octobercms-plugins octobercms-backend october-form-controller

我正在使用OctoberCMS,我使用Builder插件创建了一个名为属性的插件,到目前为止工作正常。

事情是,我有2个字段称为authorityauction_date

authority是一个下拉字段,其中包含拍卖等选项。而auction_date是一个简单的date字段。

auction_date字段取决于authority字段,仅当authority字段具有名为拍卖authority字段的选定值时才需要不是同时需要的。因此,我将下面的代码放在我的Property插件的模型文件中。

模型文件 - Property.php

public $rules = [
        'auction_date' => 'required_if:authority,==,auction',
    ];

这很有效,如果auction_date下拉列表的值从列表中选择拍卖,我就可以验证我的authority字段。

但是,默认情况下,auction_date基本上不是必填字段。它是authority的依赖字段。

然而,当我加载页面时,此字段旁边显示星号(*)的字段。下面是它的样子。

enter image description here

我尝试更新我的插件的 fields.yaml 文件,我的代码放在下面。

auction_date:
            label: 'Auction Date:'
            oc.commentPosition: ''
            mode: date
            span: auto
            type: datepicker
            tab: 'Address Information'
            required: false 

此代码required: false对我不起作用。

我遇到了更新以下系统库文件的解决方案。

  • modules / backend / classes / FormField.php
  • 模块/后端/部件/ form.php的

这样做,Field definition should override magic

但坦率地说,我不想在这里弄乱任何系统文件。如果我能找到一些可以在插件文件中处理这个东西的解决方案,那将是理想的。

如果有人指导我完成这项工作,那就太棒了。

提前致谢。

1 个答案:

答案 0 :(得分:4)

您可以等待下一个版本或覆盖用于确定是否需要某些内容的方法。

public function filterFields($fields)
{
    $fields->auction_date->required = false;
}
相关问题