Проблема проверки OctoberCMS для обязательного, но зависимого поля со звездочкой

Я использую OctoberCMS, и я использовал плагин Builder для создания одного из моих плагинов, называемых Свойствами, который до сих пор работает нормально.

Дело в том, у меня есть 2 поля, которые называются authority а также auction_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

И делая это, определение поля должно переопределить магию.

Но, честно говоря, я не хочу связываться с любым системным файлом здесь. Было бы идеально, если бы я мог найти какое-то решение, которое может решить эту проблему в одном из файлов плагинов.

Если кто-то поможет мне добиться этого, это будет здорово.

Заранее спасибо.

1 ответ

Решение

Вы можете дождаться следующего выпуска или переопределить метод, используемый для определения необходимости чего-либо.

public function filterFields($fields)
{
    $fields->auction_date->required = false;
}
Другие вопросы по тегам