Create

Met het create deel ga je een nieuwe entiteit aanmaken en in de database opslaan. Je voegt bijvoorbeeld een gebruiker toe aan jouw systeem.

Simpel voorbeeld

php
// Volgende staat in de use sectie
use App\Entity\User;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;

public function create(EntityManagerInterface $entityManager) {
    // We maken een nieuwe (lege) gebruiker aan
    $user = new User();
    // We bereiden de database voor om de nieuwe gebruiker op te slaan
    $entityManager->persist($user);
    // We voeren de voorbereide statements uit
    $entityManager->flush();
}

Create met data

Je kan met de getters en setters van de Entity de data natuurlijk ook aanpassen — soms moet dat ook, omdat sommige velden verplicht zijn.

php
// Volgende staat in de use sectie
use App\Entity\User;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;

public function create(EntityManagerInterface $entityManager) {
    // We maken een nieuwe (lege) gebruiker aan
    $user = new User();
    // We zetten de naam en het emailadres via de setters
    $user->setName('Michiel');
    $user->setEmail('[email protected]');

    // Nu alle velden die verplicht zijn ook gezet zijn, kunnen we de gebruiker opslaan
    // We bereiden de database voor om de nieuwe gebruiker op te slaan
    $entityManager->persist($user);
    // We voeren de voorbereide statements uit
    $entityManager->flush();
}

Dit is een simpele versie; uiteraard moet je waarschijnlijk nog wat data toevoegen aan de User entity. Meer informatie lees je in de paragraaf van de Model/Entity, ook over de werking met getters en setters. Hoe je data verstuurt en aanpast via een formulier lees je bij het hoofdstuk over formulieren.

persist en flush
persist() bereidt Doctrine voor om het object op te slaan; flush() voert daadwerkelijk de SQL INSERT uit. Je kunt meerdere objecten persist()-en en ze allemaal in één keer met flush() wegschrijven.