Symfony';s命令:没有默认连接


Symfony's Command : No default connection

在我的Symfony2项目中,我需要用命令在数据库中做一些工作。当我启动它时,我有这个错误:

[Exception]
There is no default connection

我不明白为什么?

我的代码:

1. $this->output = $output;
2. $this->writeln( 'ImportBase' );
3. $importBase = Model'ImportBase::builder()
        ->whereEgal('termine', 0)
        ->limit(1)
        ->getObject();

作为参考,在我的项目中只有一个连接。此外,我不使用条令,但使用ORM(我想?这不是我的项目)

你知道吗?我什么都找不到。。。

编辑:

config.yml:

doctrine:
    dbal:
        default_connection:   default
        connections:
            default:
                driver:   "%database_driver%"
                host:     "%database_host%"
                port:     "%database_port%"
                dbname:   "%database_name%"
                user:     "%database_user%"
                password: "%database_password%"
                charset:  UTF8

    orm:
        auto_generate_proxy_classes: "%kernel.debug%"
        auto_mapping: true

参数.yml

parameters:
    database_driver: pdo_mysql
    database_host: 127.0.0.1
    database_port: null
    database_name: [...]
    database_user: [...]
    database_password: [...]

型号:

<?php
    namespace xxx'xxxhBundle'Model;
    use xxx'ORM'Model;
    class ImportBase extends Model
    {
        protected static $table_name = 'import_base';
        protected static $primary_key = 'import_base_id';
    }

模型文件中的生成器

    /**
     * Get command builder for the class
     *
     * @return DbCommandBuilder builder
     */
    public static function builder() {
    if( static::$table_name == null )
        throw new 'Exception('Canot get builder, table_name is not set');
        $builder = static::dbConnection()->builder( static::tableName(), static::$builder_class );
        $builder->setFetchClassName( get_called_class() );
        return $builder;
    }

这似乎有点奇怪。。。根据您提供的配置,我没有发现任何错误。

然而,由于您似乎只有一个dbal连接,您可以简单地使用"简洁"配置:

doctrine:
    dbal:
        driver:   "%database_driver%"
        host:     "%database_host%"
        port:     "%database_port%"
        dbname:   "%database_name%"
        user:     "%database_user%"
        password: "%database_password%               
        charset:  UTF8
    orm:
        auto_generate_proxy_classes: "%kernel.debug%"
        auto_mapping: true

希望这有帮助:)