« Programmation PHP/Les cadriciels/CakePHP/Formulaire » : différence entre les versions

Contenu supprimé Contenu ajouté
m Formatage, ajout de code
DannyS712 (discussion | contributions)
m <source> -> <syntaxhighlight> (phab:T237267)
 
Ligne 9 :
 
Pour [[MySQL]] :
<sourcesyntaxhighlight lang="sql">
CREATE TABLE 'utilisateurs' (
'id' INT( 10 ) NOT NULL AUTO_INCREMENT ,
Ligne 22 :
UNIQUE KEY 'email' ('email')
)
</syntaxhighlight>
</source>
 
Pour [[PostgreSQL]] :
<sourcesyntaxhighlight lang="sql">
CREATE TABLE utilisateurs
(
Ligne 39 :
CONSTRAINT utilisateurs_identifiant_key UNIQUE (identifiant)
)
</syntaxhighlight>
</source>
 
== Le modèle ==
La table créée, nous devons créer un modèle pour interagir avec. Notre modèle ''utilisateur'' lira, insèrera et validera les données de la table mais pour l'instant c'est une ébauche.
 
<sourcesyntaxhighlight lang="php">
<?php
class Utilisateur extends AppModel {
Ligne 50 :
}
?>
</syntaxhighlight>
</source>
 
Enregistrez ce listing dans <code>app/models/utilisateur.php</code>
Ligne 57 :
La vue ''enregistrer'' est notre formulaire d'enregistrement de nouveau compte utilisateur.
 
<sourcesyntaxhighlight lang="php">
<?php echo $html->formTag('/utilisateurs/enregistrer') ?>
<p>Complétez le formulaire pour enregistrer votre compte.</p>
Ligne 72 :
<input type="submit" value="enregistrer" />
</form>
</syntaxhighlight>
</source>
Enregistrez ce listing dans <code>app/views/users/enregistrer.thtml</code>
 
Ligne 79 :
 
Un contrôleur CakePHP hérite d'''AppController''.
<sourcesyntaxhighlight lang="php">
<?php
class UtilisateursController extends AppController
Ligne 89 :
}
?>
</syntaxhighlight>
</source>
 
L'action ''enregistrer'' va devoir vérifier si le formulaire a bien été soumis. Ensuite notre action va sauvegarder (''$this->Utilisateur->save($this->params['form']'') les données du formulaire (le tableau ''$this->params['form']'') dans la table en utilisant les clés du tableau comme nom de colonne et les valeurs comme une requête SQL d'insertion.
Ligne 95 :
La table SQL doit se nommer d'après le nom de notre modèle (''Utilisateur'') au pluriel (table ''utilisateurs'').
 
<sourcesyntaxhighlight lang="php">
class UtilisateursController extends AppController
{
Ligne 112 :
}
}
</syntaxhighlight>
</source>
 
Enregistrez ce listing dans <code>app/controllers/utilisateurs_controller.php</code>.