2011-05-19 8 views
2

Hé les gars, notre société cherche à commencer à utiliser FuelPHP comme cadre principal de développement. Personnellement, je viens d'un arrière-plan CakePHP, et j'aime vraiment la façon dont Cake gère beaucoup de choses, comme la validation - c'est-à-dire, définir les règles une fois dans le modèle, et tout fonctionne pour respecter les règles.Validation de type CakePHP dans FuelPHP

En passant à Fuel, cependant, il semble que leur approche soit différente, où les règles de validation doivent être définies dans le contrôleur. Le côté négatif de ceci est beaucoup de code répété - c.-à-d., Même si vous avez seulement ajouter et éditez les actions, c'est toujours deux endroits dont vous avez besoin pour définir vos règles. Pour cette raison, j'espérais que quelqu'un pourrait m'aider et me faire savoir s'il est possible pour le modèle de gérer la validation?

Merci :)

+0

Vous devriez marquer la réponse comme acceptée, ceci est âgé de 7 mois. –

Répondre

3

Comme je l'ai été trop occupé ces derniers temps, regretably je n'ai pas trouvé le temps de documenter beaucoup. Il y a deux options:

  1. Créer un set_form_fields() à utiliser avec la validation que vous passez une instance de la classe Fieldset et doit configurer tous les domaines (y compris la validation). Un exemple peut être found here (bien que basé sur une version périmée de carburant). Une fois que vous avez une telle méthode dans votre modèle, vous pouvez utiliser Validation::factory()->add_model('Model_Example') (règles peuvent également être créés dans le modèle, les préfixer avec _validation_ et vous pouvez les utiliser lors de l'ajout du modèle comme ci-dessus)

  2. Définir la validation règles de la propriété d'un $_properties Orm \ modèle classe et ajouter le modèle comme avec 1. (ORM \ modèle a la méthode set_form_fields() dans la construction)

  3. Ajouter le Orm \ Observer_Validation à votre Orm \ Model $_observers propriété et la validation sera effectuée lors de la sauvegarde de votre modèle, en lançant une exception ValidationFailed en cas d'échec. Les erreurs peuvent être extraites par le nom de classe de la classe de validation après, par exemple: lorsqu'une instance Model_Example n'a pas l'enregistrement en raison de la validation, vous pouvez récupérer l'instance de validation complète en utilisant Validation::instance('Model_Example') ou récupérer les erreurs en utilisant Validation::instance('Model_Example')->show_errors()