2013-02-06 2 views
0

저는 새로운 Zend 개발자입니다. 특히 개념 상 문제가 있습니다 (특히 doctrine 사용).가능한 데이터베이스 구성 문제

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

에서 그 라인을 추가해야합니다.

<?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 파일

나는 여기

이 파일의 코드위한 인증/법인/User.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', 
       ) 
      ) 
     ) 
    ), 
); 

내가 지금 가지고있는 문제는 내 dataBase에 액세스하는 것입니다. 구성 문제라고 생각합니다.

내 클래스 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와 같음을 알게되었습니다. LL.

문제의 출처를 알려주세요.

도움 주셔서 감사합니다.

+0

오류 메시지는 Doctrine과 관련이 없습니다. 레이아웃 템플릿을 찾을 수 없습니다. (옆으로 : 코드에서 SPACES를 사용하고 모든 탭을 제거하십시오.)) – Sam

+0

감사합니다 Sam = D 죄송합니다.이 포럼에서 처음입니다. –

답변

1

내 문제는 내 데이터베이스에 = D

그것이 내 테이블 구조 어디에서 왔는지 나는 마침내 발견했다. 그것은 내 엔티티 파일과 유사하지 않았으므로 변경하고 이제는 작동합니다.

내 게시물이 동일한 문제가있는 다른 사람에게 도움이되기를 바랍니다.