Проблема проверки 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;
}