Dok. 2 ORM unterstützt INSERT
nicht über DQL oder DQL query builder. Für eine vollständige Syntax überprüfen Sie the EBNF of DQL.
Um Einsätze in ORM handhaben, können Sie immer von Hand eine Einheit und bleiben sie mit der EntityManager instanziiert:
$user = new \My\Entity\User();
$entityManager->persist($user);
$entityManager->flush();
Sie nur SELECT
, UPDATE
und DELETE
über DQL in Lehre ORM umgehen kann:
Select:
SELECT u FROM My\Entity\User u WHERE u.id = :userId
Update:
UPDATE My\Entity\User u SET u.status = 'banned' WHERE u.id = :userId
löschen
DELETE My\Entity\User u WHERE u.id = :userId
Sie diese Vorgänge mit dem Querybuilder als auch handhaben können:
$queryBuilder = $entityManager->createQueryBuilder();
$queryBuilder
->select('u')
->from('My\Entity\User', 'u')
->where($queryBuilder->expr()->eq('u.id', ':userId'));
$queryBuilder = $entityManager->createQueryBuilder();
$queryBuilder
->delete('My\Entity\User', 'u')
->where($queryBuilder->expr()->eq('u.id', ':userId'));
$queryBuilder = $entityManager->createQueryBuilder();
$queryBuilder
->update('My\Entity\User', 'u')
->set('u.status', 'banned')
->where($queryBuilder->expr()->eq('u.id', ':userId'));
Sie, Geck, brauchen einen gründlichen Blick auf Symfony2, Lehre zu nehmen und so weiter .... – DonCallisto