2017-12-19 29 views
0

PHP 7.1.5에서 MAMP 서버를 사용합니다. Symfony Framework 3.4.2, 새로운 프로젝트를위한 PostgreSQL 10. 또한 PostGIS를 사용하여 PostgreSQL에서 공간 데이터를 기하 데이터 유형으로 저장합니다. 그러므로 내가 설치 및 사용 : "jsor/교리 PostGIS와"를 "^ 1.5"Symfony 3.4 LTS, PostgreSQL 10, DoctrineDBAL에서 드라이버를 찾을 수 없습니다.

다음 내 composer.json의 일부입니다

"require": { 
    "php": ">=5.5.9", 
    "doctrine/doctrine-bundle": "^1.6", 
    "doctrine/orm": "^2.5", 
    "incenteev/composer-parameter-handler": "^2.0", 
    "jsor/doctrine-postgis": "^1.5", 
    "sensio/distribution-bundle": "^5.0.19", 
    "sensio/framework-extra-bundle": "^5.0.0", 
    "symfony/monolog-bundle": "^3.1.0", 
    "symfony/polyfill-apcu": "^1.0", 
    "symfony/swiftmailer-bundle": "^2.6.4", 
    "symfony/symfony": "3.4.*", 
    "twig/twig": "^1.0||^2.0" 

parameters.yml :

server_ver: 10.0 
database_driver: pdo_pgsql 
database_host: localhost 
database_port: 5432 
database_name: qtqg 
database_path:  ~ 
database_user: postgres 
database_password: admin 

config.yml :

doctrine: 
dbal: 
    default_connection: default 
    connections: 
     default: 
      mapping_types: 
       _text: string 
      server_version: %server_ver% 
      driver: %database_driver% 
      host:  %database_host% 
      port:  %database_port% 
      dbname: %database_name% 
      path:  %database_path% 
      user:  %database_user% 
      password: %database_password% 
      persistent: true 
      charset: UTF8 
      logging: %kernel.debug% 
      profiling: %kernel.debug% 

    # if using pdo_sqlite as your database driver: 
    # 1. add the path in parameters.yml 
    #  e.g. database_path: '%kernel.project_dir%/var/data/data.sqlite' 
    # 2. Uncomment database_path in parameters.yml.dist 
    # 3. Uncomment next line: 
    #path: '%database_path%' 
    types: 
     geography: 
      class: 'Jsor\Doctrine\PostGIS\Types\GeographyType' 
      commented: false 
     geometry: 
      class: 'Jsor\Doctrine\PostGIS\Types\GeometryType' 
      commented: false 
     raster: 
      class: 'Jsor\Doctrine\PostGIS\Types\RasterType' 
      commented: false 

모든 것은 내가 엔티티를 생성하기 위해 cmd를 사용하여, 잘 작동 :

php bin/console doctrine:mapping:import --force AppBundle annotation 

그리고 그 생성 CRUD 후:

php bin/console generate:doctrine:crud AppBundleMonitoringAdminBundle:coquan -n --format=annotation --with-write 

러닝 PHP는 PHP 7.1.5이고 나는 또한 C에서의 php.ini 파일을 확인 : \ Windows 및 MAMP 서버의로드의 php.ini. php -m 명령을 보여줍니다

PDO 
pdo_mysql 
PDO_ODBC 
pdo_pgsql 
pdo_sqlite 

나는 그것을 연결하고 엔터티 CRUD .... 를 생성 할 수 있기 때문에 데이터 드라이버에 문제를 생각하지만, 이후 CRUD를 생성하고 모든 항목을 나열 컨트롤러에 액세스하려고하지 않는다

오류 라인의
An exception occurred in driver: could not find driver 

하나는 : 하나의 엔티티, 나는 오류를 가지고 내가 XA에 MAMP 변경을 포함하여 많은 방법을 시도

AbstractPostgreSQLDriver->convertException('An exception occurred in driver: could not find driver', object(PDOException)) in vendor\doctrine\dbal\lib\Doctrine\DBAL\DBALException.php (line 176) 

mp, wamp 서버, dbal 설정 방법에 대한 모든 권장 사항 ... 그러나 오류는 여전히 있습니다.

누구든지 도와 주실 수 있습니까?

+0

를 들어 vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/PostgreSqlSchemaManager.php 라인 라인 (292) 변화 내부 섬기는 사람. phpinfo()를 사용하여 활성화 된 확장을 검사하고 어떤 php.ini가 사용 중인지 확인할 수 있습니다. – Orange18947

+0

웹 서버에서 어떻게 활성화 할 수 있습니까? php -v는 php가 7.15 (cli)임을 보여줍니다. php --ini 2 개의 php.ini 파일을 하나의 C :/windows에 보여주고 c : /mamp/bin/php/php7.15에 하나를로드했지만이 두 파일이 동일하도록 복사했습니다. – askmacos

답변

0

문제는 PostgreSQL을 함께 10

당신이 pdo_pgsql`은 CLI에서 활성화`가지고있는 것처럼 보이는,하지만 웹에

$data = $this->_conn->fetchAll('SELECT min_value, increment_by FROM ' . $this->_platform->quoteIdentifier($sequenceName)); 

$version = floatval($this->_conn->getWrappedConnection()->getServerVersion()); 

if ($version >= 10) { 
    $data = $this->_conn->fetchAll('SELECT min_value, increment_by FROM pg_sequences WHERE schemaname = \'public\' AND sequencename = '.$this->_conn->quote($sequenceName)); 
} 
else 
{ 
    $data = $this->_conn->fetchAll('SELECT min_value, increment_by FROM ' . $this->_platform->quoteIdentifier($sequenceName)); 
}