2

J'utilise OctoberCMS et j'ai utilisé Builder plugin pour créer un de mes plugins appelé Propriétés qui fonctionne très bien jusqu'à présent. La chose est, j'ai 2 champs appelés authority et auction_date.OctobreCMS problème de validation pour champ requis mais dépendant avec astérisque

authority est une liste déroulante qui a des options comme vente et etc .. alors auction_date est simple un champ date.

champ auction_date dépend de champ authority et il est nécessaire que si le champ authority a une valeur sélectionnée appelé enchères et authority champ ne sera pas nécessaire en même temps. Par conséquent, j'ai mis le code ci-dessous dans le fichier modèle de mon plugin de propriété.

Modèle Fichier - Property.php

public $rules = [ 
     'auction_date' => 'required_if:authority,==,auction', 
    ]; 

Cela fonctionne bien, je suis en mesure de valider mon champ auction_date si la valeur authority déroulante sélectionnée aux enchères de la liste. Toutefois, auction_date n'est pas un champ obligatoire par défaut. C'est un champ dépendant de authority.

Pourtant, le champ indiquant indique un astérisque (*) à côté de ce champ lorsque je charge la page. Voici ci-dessous à quoi cela ressemble.

enter image description here

J'ai essayé de mettre à jour fields.yaml de mon plugin déposer ma place en-dessous du code.

auction_date: 
      label: 'Auction Date:' 
      oc.commentPosition: '' 
      mode: date 
      span: auto 
      type: datepicker 
      tab: 'Address Information' 
      required: false 

Ce code required: false n'a pas fonctionné pour moi.

Je suis tombé sur la solution pour mettre à jour ci-dessous les fichiers de la bibliothèque système.

  • modules/back-end/classes/FormField.php
  • modules/backend/widgets/form.php

Et ce faisant, Field definition should override magic.

Mais franchement, je ne veux pas jouer avec un fichier système ici. Ce serait idéal si je peux trouver une solution qui peut traiter cette chose dans l'un des fichiers plugin.

Si quelqu'un me guide pour accomplir ceci, ce serait génial.

Merci d'avance.

Répondre

3

Vous pouvez attendre la prochaine version ou remplacer la méthode utilisée pour déterminer si un élément est requis.

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

Cela fonctionne. Cela m'a aidé. Merci Monsieur le Co-fondateur d'OctoberCMS :) –