在我的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;
}
答案 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
希望这会有所帮助:)