Я новичок в этом фантастическом октябре после 10 лет Joomla и хотел бы продолжить его. Я использую отличный плагин Builder и хотел бы иметь «сложные» проверки в бэк-энде с формами «создавать» или «обновлять».
После многих поисков в сети я могуНе представляете, как и где разместить код для добавления правил проверки бизнеса?
Я играл с опциями yaml, чтобы иметь динамические поля и простые проверки. Теперь я хотел бы иметь сложные правила, такие как: если категория - это X, а тип - это Y, тогда поле (текстовое) имени устанавливается в «ZZZ». Может кто-нибудь подсказать мне, как добавить такой код в PHP?
Я могу читать значения полей, но не могу программно изменить входные данные. После многих попыток я застрял в проблеме. Любая помощь будет принята с благодарностью. Спасибо.
[EDIT] После помощи Раджи я изменил свой код следующим образом: PHP Model
class Event extends Model {
use \October\Rain\Database\Traits\Validation;
use \October\Rain\Database\Traits\SoftDelete;
public $rules = [];
// in models/your_object_model
public function filterFields($fields, $context = null) {
echo "\r\n".'filterFields() : '.$this->nom."\r\n";
// var_dump($fields->nom);
if ( $this->nom == 'toto' ) {
echo $this->nom.' is french'."\r\n";
$fields->pays->value = 'FR';
$fields->pays->hidden = true;
$fields->ville->value = 'Paris';
}
}
}
YAML:
fields:
nom:
label: Nom
span: full
type: text
description:
label: Description
size: ''
span: full
type: richeditor
pays:
label: Pays
span: auto
default: US
type: text
dependsOn: nom
ville:
label: Ville
span: auto
default: NY
dependsOn: nom
type: text
Что я понял, так это то, что filterFields() запускается в зависимости от YAML зависящих: ном.
Когда я заполняю 'Nom' и нажимаю на Описание, результат теперь:
1) Я все еще не могуизменить значение в форме , когда я иду в функцию, потому что я отображаю строку «toto is french»
2) В текстовых полях, которые я пытаюсь изменить, я получаю бесконечный счетчик иполя не могут быть введены с помощью мыши, только с клавиатуры
3) Как я могу удалить зеленую строку X_OCTOBER_ASSETS?
Изображение результата в Description click