Bonjour à tous,

je continu mon apprentissage de Symfony 2, j'ai globalement compris comment tout fonctionne et la je m'attaque au Model et j'ai un peu de mal.

Mon code se trouve dans le dossier "Farid" et mon bundle s'appel "TestBundle".

J'ai une base de données appelé "symfony_db" avec une table "users" qui contient 2 champs, "id" et "name".

J'ai configurer Symfony pour qu'il puisse se connecter à ma bdd, j'ai fait une requête dans mon contrôleur et j'obtiens bien le résultat dans ma vue.

Maintenant, j'aimerai bie utiliser l'ORM correctement.
1 - Pouvez-vous m'expliquer la différences entre ORM, DBAL par rapport à PDO?

app/config/config.yml :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Doctrine Configuration
doctrine:
    dbal:
        driver: pdo_mysql
        host: localhost
        dbname: symfony_db
        user: root
        password: null
        logging:  %kernel.debug%
 
    orm:
        default_entity_manager: default
        entity_managers:
            default:
                mappings:
                    TestBundle: ~
Que faut-il que je mette dans mappings


Farid/TestBundle/Entity/User.php :

Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
 
namespace Farid\TestBundle\Entity;
 
class User
{
    protected $id;
    protected $name;
 
    public function getId()
    {
        return $this->id;
    }
 
    public function setName($name)
    {
        $this->name = $name;
    }
 
    public function getName()
    {
        return $this->name;
    }
}

Farid/TestBundle/TestController.php :

Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
    public function baseAction($id)
    {
        //$conn = $this->get('database_connection');
 
        //$users = $conn->fetchAll('SELECT * FROM users');
 
        $em = $this->get('doctrine.orm.entity_manager');
 
        $user = $em->find('TestBundle:User', $id);
 
 
        return $this->render('TestBundle:Test:base.html.twig', array('utilisateurs' => $user));
    }
Que faut-il que je mette dans find?

Voici l'erreur que j'obtient :

Class Farid\TestBundle\Entity\User is not a valid entity or mapped super class.
500 Internal Server Error - MappingException
Merci par avance pour votre aide.