2016-02-27 2 views
1

У меня возникла проблема с настройкой сопоставления сущностей в приложении silex.Silex and doctrine orm mapping - не обнаружено сопоставлений

регистрирующие услуги:

$app->register(new Silex\Provider\DoctrineServiceProvider(), array(
    'db.options' => array(
     'driver' => 'pdo_mysql', 
     'dbname' => 'blabla', 
     'host'  => 'blabla', 
     'user'  => 'blabla', 
     'password' => 'blabla', 
     'port'  => '3306', 
     'charset' => 'utf8' 
    ), 
)); 

$app->register(new DoctrineOrmServiceProvider(), [ 
    'orm.em.options.mappings' => [ 
      [ 
       'type' => 'simple_yml', 
       'namespace' => 'App\Entities', 
       'path' => __DIR__. '/Resources/orm/mappings/', 
      ], 
    ] 
]); 

ЦСИ/Ресурсы/ОРМ/отображения/User.orm.yml: сам

User: 
    type: entity 
    table: users 
    id: 
    id: 
     type: integer 
     generator: 
     strategy: AUTO 
    fields: 
    username: 
     type: string 
    email: 
     type: string 
    github_token: 
     type: string 
    github_token_created_at: 
     type: datetimetz 
    created_at: 
     type: datetimetz 
    updated_at: 
     type: datetimetz 

И сущность класс находится в: SRC/Entities/User .php

cli-config.php файл:

<?php 
require_once 'vendor/autoload.php'; 

$app = require_once 'src/app.php'; 

return \Doctrine\ORM\Tools\Console\ConsoleRunner::createHelperSet($app['orm.em']); 

И я бегу следующую команду:

vendor/bin/doctrine orm:info

я получаю информацию об отсутствии отображений:

[Exception]                                            
    You do not have any mapped Doctrine ORM entities according to the current configuration. If you have entities or mapping files you should check your mapping configuration for errors` 

Я 99% уверен, что пути устанавливаются в порядке, подключение к базе данных правильно, я понятия не имею, почему это не работает. Может ли кто-нибудь помочь мне в этом?

ответ

0

Большинство отображений я видел, как этого

'mappings' => array(
     // Using actual filesystem paths 
     array(
      'type' => 'annotation', 
      'namespace' => 'Foo\Entities', 
      'path' => __DIR__.'/src/Foo/Entities', 
     ), 

Вы, кажется, не имеют пространство имен и путь в каких-либо заметных отношениях

+0

Потому что я не использую аннотации. Пространство имен для сущностей, а путь - для файлов yml. – matiit

+0

Я не пытался эту конфигурацию. Вы проверили, что ваша автозагрузка работает? – Treemonkey

+0

Работает автозагрузка. Я сбросил объект $ app ['orm.em'] в файле cli-config.php. Был экземпляр. Нет сообщений, не найденных в классе, и т. Д. – matiit

Смежные вопросы