编程语言
首页 > 编程语言> > php-带星号的必填但相关字段的OctoberCMS验证问题

php-带星号的必填但相关字段的OctoberCMS验证问题

作者:互联网

我正在使用OctoberCMS,并且已经使用Builder插件创建了我的一个名为Properties的插件,到目前为止效果良好.

事情是,我有2个字段,称为Authority和Auction_date.

权限是一个下拉字段,具有诸如拍卖等选项.而auction_date是简单的日期字段.

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

模型文件-Property.php

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

这很好用,如果授权下拉列表的值从列表中选择了拍卖,我就能验证我的auction_date字段.

但是,默认情况下,在这里基本上拍卖字段不是必填字段.它是权限的从属领域.

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

enter image description here

我试着更新我的插件的fields.yaml文件,将其放在下面的代码中.

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

需要此代码:false对我不起作用.

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

> modules / backend / classes / FormField.php
> modules / backend / widgets / Form.php

并执行此操作Field definition should override magic.

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

如果有人指导我完成这项任务,那将是非常棒的.

提前致谢.

解决方法:

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

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

标签:octobercms,octobercms-backend,octobercms-plugins,php,october-form-controller
来源: https://codeday.me/bug/20191025/1930627.html