在我的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
希望这有帮助:)