Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Registrazione: il form

Impariamo a creare una pagina di registrazione per consentire agli utenti di registrarsi in un social network basato sul framework PHP Symfony
Impariamo a creare una pagina di registrazione per consentire agli utenti di registrarsi in un social network basato sul framework PHP Symfony
Link copiato negli appunti

Abbiamo visto in precedenza come il componente MakeBundle ci abbia consentito di creare una pagina di login con Symfony funzionante con uno sforzo davvero ridotto in termini di stesura del codice. A questo punto, possiamo dedicarci alla pagina di registrazione per consentire agli utenti di registrarsi sulla piattaforma.

Creare la Form di registrazione

Sono pochi gli step necessari per creare il form di registrazione, la parte che richiederà un po’ più di lavoro è quella relativa alla personalizzazione dell'aspetto visuale.

Iniziamo lanciando il seguente comando all'interno del container, decidendo se necessitiamo di una messaggio di posta elettronica per la conferma e se vogliamo che l'utente sia automaticamente loggato dopo la registrazione:

$ ./bin/console make:registration-form
 Creating a registration form for App\Entity\User
 Do you want to add a @UniqueEntity validation annotation on your User class to make sure duplicate accounts aren't created? (yes/no) [yes]:
 >
 Do you want to send an email to verify the user's email address after registration? (yes/no) [yes]:
 > no
 Do you want to automatically authenticate the user after registration? (yes/no) [yes]:
 > yes
 updated: src/Entity/User.php
 created: src/Form/RegistrationFormType.php
 created: src/Controller/RegistrationController.php
 created: templates/registration/register.html.twig
  Success!
 Next:
 Make any changes you need to the form, controller & template.
 Then open your browser, go to "/register" and enjoy your new form!

Al termine del comando avremo alcuni nuovi file ed una modifica all'entità User. Partiamo da quest'ultima:

* @UniqueEntity(fields={"email"}, message="There is already an account with this email")

L'annotation di Doctrine proposta nel codice precedente ci garantisce che quello relativo all'indirizzo email sarà un campo univoco e che non possono esserci più utenti con lo stesso recapito di posta elettronica.

Gli altri file generati dal comando sono invece:

  • app/src/Controller/RegistrationController.php che contiene la logica di creazione dell'utente nonché il login automatico al termine dell’operazione;
  • app/src/Form/RegistrationFormType.php che definisce i campi contenuti dal form di registrazione con le relative constraints, ovvero le regole di validazione. Approfondiremo poco più avanti i form di Symfony, per ora è importante sapere che sono degli oggetti che permettono di gestire i form HTML dalla loro creazione alla gestione dei contenuti;
  • app/templates/registration/register.html.twig che contiene il template della pagina, tra cui il rendering della form

Prima di approfondire il contenuto del controller possiamo provare il nostra form di registrazione. Da utente non autenticato, se apriamo la pagina http://kvak.local/register otteniamo un redirect alla pagina per il Login; questo avviene perché dobbiamo modificare il file security.yaml affinché consenta l'accesso alla pagina di registrazione anche per gli utenti anonimi:

access_control:
 - { path: ^/login$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
 - { path: ^/register, roles: IS_AUTHENTICATED_ANONYMOUSLY }
 - { path: ^/, roles: ROLE_USER }

Dopo aver effettuato tale modifica possiamo provare ad effettuare una registrazione di prova.

Ti consigliamo anche