Symfony的命令:没有默认连接

时间:2015-11-30 09:44:04

标签: php symfony orm command

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

[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();

有关信息,我的项目中只有一个连接。 另外,我不使用Doctrine而是使用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

Parameters.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;
    }

1 个答案:

答案 0 :(得分:0)

这看起来有点奇怪......根据您提供的配置,我没有发现任何错误。

但是,由于您似乎只有一个dbal连接,因此您只需使用&#34; terser&#34;配置:

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

希望这会有所帮助:)