2

我使用的是OctoberCMS,我用Builder插件创建了我的一个插件,名为属性迄今为止工作正常。OctoberCMS验证问题,需要但有关字段,带星号

事情是,我有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没有为我工作。

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

  • 模块/后端/班/ FormField.php
  • 模块/后端/部件/ form.php的

而且这样做,Field definition should override magic

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

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

在此先感谢。

回答

3

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

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

它的工作原理。这帮助了我。谢谢OctoberCMS联合创始人Mr. –