2017-12-19 15 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 

一つは次のとおりです:1エンティティ、私はエラーを得た私は、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

私はどのようにWebサーバでそれを有効にできますか? php -vはそれがphp 7.15(cli)であることを示しました。 php --ini 2つのphp.iniファイルを1つのC:/ windowsに表示し、c:/mamp/bin/php/php7.15に読み込みますが、これらの2つのファイルが同じになるようにコピーしました。 – 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)); 
} 
関連する問題