Créer un formulaire sans modèle
Dans certaines situations il est nécessaire de créer un formulaire qui ne soit rattaché à aucun modèle. C’est le cas d’un formulaire de contact par exemple.
1. Définir le formulaire
La première chose à faire est de créer un fichier contenant une classe qui étend la classe Form dans le dossier src/Form. Le nom du fichier correspond au nom de la classe créée suivi de l’extension ".php".
Exemple :
Le code ci-dessous permet de créer une classe pour un formulaire de contact dans le fichier src/Form/ContactForm.php :
namespace App\Form;
use Cake\Form\Form;
use Cake\Form\Schema;
use Cake\Validation\Validator;
class ContactForm extends Form{
// Code de la classe
}
Cette classe va contenir trois méthodes privées :
-
_buildSchema(), qui sert à définir le schéma des données utilisées par l’assistant Form pour créer le formulaire.
-
_buildValidator(), pour valider les données qui sont transmises par le formulaire.
-
_execute(), qui effectue un traitement sur les données transmises par le formulaire après leur validation.
Exemple :
Le code ci-dessous implémente les méthodes _buildSchema(), _buildValidator() et _execute().
namespace App\Form;
use Cake\Form\Form;
use Cake\Form\Schema;
use Cake\Validation\Validator;
class ContactForm extends Form{
protected...