2013-02-06 64 views
0

我是一個新的Zend開發人員,我有一些概念問題(尤其是與教條)。可能的數據庫配置問題

我有一個叫做MyAuthenticationProcess的類。 該類正在嘗試通過在數據庫上驗證其身份來驗證用戶身份。

正如我在互聯網上看到的,我應該實現3件事情,以便與我的數據庫進行通信。

首先,我要在我的module.config.php

'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'  
       )  
      ) 
    )  
), 

添加這些行第二,我要創建一個將包含我的實體的文件。我創造了這個文件在身份認證/實體/ user.php的

下面是該文件的代碼:

<?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; 
} 


} 
?> 

而完成我加入這個配置到這個文件:配置/自動加載/ local.php

<?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', 
       ) 
      ) 
     ) 
    ), 
); 

我現在的問題是訪問我的數據庫。 我想這是一個配置問題。

在我的類MyAuthenticationProcess我試圖讓我的表「用戶」的所有條目。但我不能。

這裏是我用來做這樣的代碼:

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

這裏是我的錯誤:

<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 /> 

要確保這是我嘗試配置的問題知道如果使用此連接建立連接:

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

我很驚訝,看到用戶等於NU二。

你知道問題出在哪裏嗎?

謝謝你的幫助。

+0

該錯誤消息與Doctrine無關。找不到佈局模板。 (另外:請在你的代碼中使用SPACES並擺脫所有的Tabs)) – Sam

+0

謝謝Sam = D 對不起,這是我第一次參加這個論壇。 –

回答

1

我終於找到我的問題來自哪裏= D

這是我的數據庫中的表結構。它與我的實體文件不一樣,所以我改變了它,現在它工作。

希望我的文章能夠幫助其他有相同問題的人。