我正在使用OctoberCMS,我使用Builder插件创建了一个名为属性的插件,到目前为止工作正常。
事情是,我有2个字段称为authority
和auction_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
的依赖字段。
然而,当我加载页面时,此字段旁边显示星号(*)的字段。下面是它的样子。
我尝试更新我的插件的 fields.yaml 文件,我的代码放在下面。
auction_date:
label: 'Auction Date:'
oc.commentPosition: ''
mode: date
span: auto
type: datepicker
tab: 'Address Information'
required: false
此代码required: false
对我不起作用。
我遇到了更新以下系统库文件的解决方案。
这样做,Field definition should override magic。
但坦率地说,我不想在这里弄乱任何系统文件。如果我能找到一些可以在插件文件中处理这个东西的解决方案,那将是理想的。
如果有人指导我完成这项工作,那就太棒了。
提前致谢。
答案 0 :(得分:4)
您可以等待下一个版本或覆盖用于确定是否需要某些内容的方法。
public function filterFields($fields)
{
$fields->auction_date->required = false;
}