5

services.xml にサービスがあります

<service id="my.connection" class="Doctrine\Bundle\DoctrineBundle\ConnectionFactory">
</service>

<service id="my.main" class="%my.main.class%">
    <call method="foo">
        <argument type="service" id="tmcyc.connection" />
    </call>
</service>

しかし、エラーが発生しました:

キャッチ可能な致命的なエラー: Doctrine\Bundle\DoctrineBundle\ ConnectionFactory::__construct() に渡される引数 1 は配列でなければなりません。指定されていません...

引数で配列を渡すにはどうすればよいですか? 例えば:

<service id="my.connection" class="Doctrine\Bundle\DoctrineBundle\ConnectionFactory">
    <argument>[ARRAY]</argument>
</service>

または多分私は何か間違ったことをしていますか?このコードはうまく機能するため:

$connectionFactory = $this->getContainer()->get('doctrine.dbal.connection_factory');
$conn = $this->createConnection($this->conn);
$conn->executeQuery('SET NAMES utf8');
4

3 に答える 3

17

この例は、原則を明確にする必要があります。

*.yml

some_id: 
    class: %some.class%
    arguments: 
        - %some.argument%, 
        - [tags: [environment: %kernel.environment%, debug:%kernel.debug%]]

*.xml

<service id="some_id" class="%some.class%">
    <argument>%some.argument%</argument>
    <argument type="collection">
        <argument key="tags" type="collection">
            <argument key="environment">%kernel.environment%</argument>
            <argument key="debug">%kernel.debug%</argument>
        </argument>
    </argument>
</service>
于 2014-12-17T00:02:10.343 に答える
1

わかりました、答えを見つけました

<service id="my.connection" class="Doctrine\Bundle\DoctrineBundle\ConnectionFactory">
    <argument>%doctrine.dbal.connection_factory.types%</argument>
</service>
于 2013-02-22T11:46:19.137 に答える