【问题标题】:Symfony 3.2 parameter defined into parameters.php is not defined in PDO session configurationSymfony 3.2 中定义到 parameters.php 中的参数未在 PDO 会话配置中定义
【发布时间】:2017-03-30 13:38:31
【问题描述】:

我正在使用 symfony 3.2,我想要一个动态数据库连接,所以我在我的 config.yml 文件中导入一个文件 parameters.php:

imports:
    - { resource: parameters.php }
    - { resource: parameters.yml }
    - { resource: security.yml }
    - { resource: services.yml }

在parameters.php中我定义了database_name:

$container->setParameter('database_name', $dbName);

这适用于本机文件会话,但是当我按照 symfony 示例使用 pdo 会话时:

services:
    session.handler.pdo:
        class:     Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler
        public:    false
        arguments:
           - 'mysql:host=%database_host%;port=%database_port%;dbname=%database_name%'
           - { db_username: '%database_user%', db_password: '%database_password%' }

我在编译时出错:

 [Symfony\Component\DependencyInjection\Exception\RuntimeException]
  A string value must be composed of strings and/or numbers, but found parameter "database_name" of type boolean inside string value "mysql:host=%database_host%;port=%database_port%;dbname=%database_name%".

就像 symfony 不知道参数“database_name”。

谁能帮帮我?

【问题讨论】:

    标签: symfony session symfony-3.2


    【解决方案1】:

    好吧,这似乎不是这样做的方式...... 最后我创建了一个自定义 ConnectionFactory

    use Doctrine\Bundle\DoctrineBundle\ConnectionFactory;
    
    class MyConnectionFactory extends ConnectionFactory {
    
        public function createConnection(array $params, \Doctrine\DBAL\Configuration $config = null, \Doctrine\Common\EventManager $eventManager = null, array $mappingTypes = array()) {
    
    
    
          // Determine here params ....
    
            $params['dbname'] = $dbName;
            $params['host'] = $dbHost
            $params['user'] = $dbUser
            $params['password'] = $dbCode;
    
            return parent::createConnection($params, $config, $eventManager, $mappingTypes);
        }
    

    成功了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-13
      • 1970-01-01
      • 2019-10-03
      • 1970-01-01
      • 2018-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多