Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 06-02-2013 17:47:58

michwii
Membre
Date d'inscription: 25-01-2013
Messages: 13

[Doctrine 2] Propriété connection qui vaut null =S

Bonjour à tous,

J'essaye d'utiliser Doctrine avec ZF 2.
J'essaye de commencer très simplement en affichant toutes les entrées d'une table.

Pour cela j'ai suivi les tutos sur internet...
J'ai crée une entity User dans le fichier Authentification/Entity/User.php

Code:

<?php

namespace Authentification\Entity;

use Doctrine\ORM\Mapping as ORM;
use Zend\InputFilter\InputFilter;
use Zend\InputFilter\Factory as InputFactory;
use Zend\InputFilter\InputFilterAwareInterface;
use Zend\InputFilter\InputFilterInterface;


/**
 * A User table.
 *
 * @ORM\Entity
 * @ORM\Table(name="user")
 * @property string $login
 * @property string $password
 * @property int $id
 */

class User {
    
    /**
     * @ORM\Id
     * @ORM\Column(type="integer");
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;
    /**
     * @ORM\Column(type="string")
     */
    protected $login;
    
    /**
     * @ORM\Column(type="string")
     */
    protected $password;
    
    
    /**
     * Magic getter to expose protected properties.
     *
     * @param string $property
     * @return mixed
     */
    public function __get($property)
    {
        return $this->$property;
    }
    
    /**
     * Magic setter to save protected properties.
     *
     * @param string $property
     * @param mixed $value
     */
    public function __set($property, $value)
    {
        $this->$property = $value;
    }
    
    
}
?>

Dans le fichier /config/autoload/local.php j'ai mis :

Code:

<?php

return array(
        
        
    'doctrine' => array(
        'connection' => array(
            'orm_default' => array(
                'driverClass' => 'Doctrine\DBAL\Driver\PDOMySql\Driver',
                'params' => array(
                    'host' => 'localhost',
                    'port' => '3306',
                    'user' => 'root',
                    'password' => '',
                    'dbname' => 'zf2tutorial',
                )
            )
        )
    ),
);

Dans le fichier module.config.php de mon module j'ai ajouté :

Code:

    'doctrine' => array(
        'driver' => array(
                __NAMESPACE__. '_driver' => array(
                        'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
                        'cache' => 'array',
                        'paths' => array(__DIR__ . '/../src/' . __NAMESPACE__ . '/Entity')
                ),
                'orm_default' => array(
                    'drivers' => array(
                        __NAMESPACE__.'\Entity' => __NAMESPACE__.'_driver'        
                    )        
                )    
        )        
    ),

Enfin voici la ligne qui plante dans ma classe MyAuthenticationProcess :

Code:

                $users = $this->getEntityManager()->getRepository('Authentification\Entity\User')->findAll()   ;
        var_dump($users) ;

Voici le code d'erreur :

Code:

<br />
<b>Fatal error</b>:  Uncaught exception 'Zend\View\Exception\RuntimeException' with message 'Zend\View\Renderer\PhpRenderer::render: Unable to render template &quot;layout/layout&quot;; resolver could not resolve to a file' in xampp\htdocs\kjsencha\vendor\zendframework\zendframework\library\Zend\View\Renderer\PhpRenderer.php:457
Stack trace:
#0 xampp\htdocs\kjsencha\vendor\zendframework\zendframework\library\Zend\View\View.php(201): Zend\View\Renderer\PhpRenderer-&gt;render(Object(Zend\View\Model\ViewModel))
#1 xampp\htdocs\kjsencha\vendor\zendframework\zendframework\library\Zend\Mvc\View\Http\DefaultRenderingStrategy.php(126): Zend\View\View-&gt;render(Object(Zend\View\Model\ViewModel))
#2 [internal function]: Zend\Mvc\View\Http\DefaultRenderingStrategy-&gt;render(Object(Zend\Mvc\MvcEvent))
#3 xampp\htdocs\kjsencha\vendor\zendframework\zendframework\library\Zend\EventManager\EventManager.php(460): call_user_func(Array, Object(Zend\Mvc\MvcEvent)) in <b>\xampp\htdocs\kjsencha\vendor\zendframework\zendframework\library\Zend\View\Renderer\PhpRenderer.php</b> on line <b>457</b><br />

Un peu dure à comprendre non ?

J'ai fait ma petite enquete en essayant de décomposer le problème...
J'ai d'abord  essayé de voir si la connection avec la base de donnée à bien fonctionné. Pour cela j'ai simplement écris dans ma classe MyAuthenticationProcess :

Code:

        $users = $this->getEntityManager()->getConnection() ;
        var_dump($users) ;

Et là j'obtiens la valeur null (mais pas d'erreur d’exécution) =S
Ai-je mal configuré doctrine ?
Ou est-ce normal d'obtenir une connection qui vaut null ?

Merci d'avance pour vos réponses.

Hors ligne

 

#2 07-02-2013 10:01:55

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: [Doctrine 2] Propriété connection qui vaut null =S

Salut, je suis désolé de te dire ça mais tu fais n'importe quoi ><.
Qu'est ce que viens faire ça dans ton entité ???

Code:

[lang=php]
use Zend\InputFilter\InputFilter;
use Zend\InputFilter\Factory as InputFactory;
use Zend\InputFilter\InputFilterAwareInterface;
use Zend\InputFilter\InputFilterInterface;

C'est une entité ? un formulaire ? Relis-toi !! C'est pas cohérent ton code, il y a des erreurs d'étourderie partout.
Corriges tes erreurs sur ta classe MyAuthenticationProcess avant d'aller plus loin ...

Ensuite j'aimerais savoir où tu as trouvé tes tutos pour doctrine ... Parce que c'est pas ceux de la documentation officielle qui sont très clair et bien foutu (pour une fois que ya de la bonne doc en plus).

Donc corriges moi déjà tout ça, sans essayer d'utiliser des trucs compliqué. Fais simple puisque tu débutes.

Pour ta première erreur c'est pas ta requête qui est en cause, il arrive simplement pas à récupérer ton layout pour l'afficher.

Hors ligne

 

#3 08-02-2013 09:44:25

michwii
Membre
Date d'inscription: 25-01-2013
Messages: 13

Re: [Doctrine 2] Propriété connection qui vaut null =S

J'ai trouvé ce code sur ce site Framework

J'essaye de comprendre comme je peux ce code et j'essaye de l'adapter selon le contexte de mon application.
Effectivement j'ai oublié de supprimer les use inutile.
Cela risque t'il vraiment de faire planter le code ?

Oui j'ai également lu le tutoriel officiel de Doctrine mais je n'ai pas trouvé de lien qui explique comment bien l'intégrer dans zend voilà pourquoi j'ai préféré en suivre un autre.

PS : J'ai trouvé d'où venait l'erreur c'est ma table qui n'avait pas exactement les mêmes champs que ma classe entity.

Hors ligne

 

#4 08-02-2013 10:19:44

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: [Doctrine 2] Propriété connection qui vaut null =S

Non les use inutiles ne font pas planter le code c'est juste pas très propre.
Tu peux trouver de la doc sur doctrine et le ZF 2 ici : https://github.com/doctrine/DoctrineORMModule

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages