3

我正在使用OctoberCMS,并且我已经使用Builder插件来创建我的一个名为Properties的插件,它到目前为止运行良好。

问题是,我有 2 个字段称为authorityauction_date

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

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

模型文件 - Property.php

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

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

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

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

在此处输入图像描述

我试图更新我的插件的fields.yaml文件我把下面的代码。

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

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

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

  • 模块/后端/类/FormField.php
  • 模块/后端/小部件/Form.php

这样做,Field 定义应该覆盖 magic

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

如果有人指导我实现这一点,那就太棒了。

提前致谢。

4

1 回答 1

4

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

public function filterFields($fields)
{
    $fields->auction_date->required = false;
}
于 2017-09-13T06:22:20.220 回答