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. –