您好,我正在使用symfony 4.1创建一个新项目,
我将postgres 10.5用作我的SGBD。
我使用symfony的制造商捆绑包创建了一个实体,现在我尝试使用该命令继续使用maker捆绑包进行迁移:
php bin /控制台make:migration
这是堆栈跟踪:
In Container.php line 274:
You have requested a non-existent service "doctrine". Did you mean one of these: "console.command.public_alias.doctrine_cache.contains_command", "console.command.public
_alias.doctrine_cache.delete_command", "console.command.public_alias.doctrine_cache.flush_command", "console.command.public_alias.doctrine_cache.stats_command", "consol
e.command.public_alias.doctrine_migrations.diff_command", "console.command.public_alias.doctrine_migrations.execute_command", "console.command.public_alias.doctrine_mig
rations.generate_command", "console.command.public_alias.doctrine_migrations.latest_command", "console.command.public_alias.doctrine_migrations.migrate_command", "conso
le.command.public_alias.doctrine_migrations.status_command", "console.command.public_alias.doctrine_migrations.version_command"?
Exception trace:
Symfony\Component\DependencyInjection\Container->make() at /opt/www/jame/dataneo-erp/vendor/symfony/dependency-injection/Container.php:222
Symfony\Component\DependencyInjection\Container->get() at /opt/www/jame/dataneo-erp/vendor/doctrine/doctrine-migrations-bundle/Command/Helper/DoctrineCommandHelper.php:21
Doctrine\Bundle\MigrationsBundle\Command\Helper\DoctrineCommandHelper::setApplicationHelper() at /opt/www/jame/dataneo-erp/vendor/doctrine/doctrine-migrations-bundle/Command/MigrationsDiffDoctrineCommand.php:34
Doctrine\Bundle\MigrationsBundle\Command\MigrationsDiffDoctrineCommand->execute() at /opt/www/jame/dataneo-erp/vendor/symfony/console/Command/Command.php:251
Symfony\Component\Console\Command\Command->run() at /opt/www/jame/dataneo-erp/vendor/symfony/maker-bundle/src/Maker/MakeMigration.php:78
Symfony\Bundle\MakerBundle\Maker\MakeMigration->generate() at /opt/www/jame/dataneo-erp/vendor/symfony/maker-bundle/src/Command/MakerCommand.php:100
Symfony\Bundle\MakerBundle\Command\MakerCommand->execute() at /opt/www/jame/dataneo-erp/vendor/symfony/console/Command/Command.php:251
Symfony\Component\Console\Command\Command->run() at /opt/www/jame/dataneo-erp/vendor/symfony/console/Application.php:904
Symfony\Component\Console\Application->doRunCommand() at /opt/www/jame/dataneo-erp/vendor/symfony/framework-bundle/Console/Application.php:89
Symfony\Bundle\FrameworkBundle\Console\Application->doRunCommand() at /opt/www/jame/dataneo-erp/vendor/symfony/console/Application.php:262
Symfony\Component\Console\Application->doRun() at /opt/www/jame/dataneo-erp/vendor/symfony/framework-bundle/Console/Application.php:75
Symfony\Bundle\FrameworkBundle\Console\Application->doRun() at /opt/www/jame/dataneo-erp/vendor/symfony/console/Application.php:145
Symfony\Component\Console\Application->run() at /opt/www/jame/dataneo-erp/bin/console:39
这是一些配置文件的代码:
services.yaml
# This file is the entry point to configure your own services.
# Files in the packages/ subdirectory configure your dependencies.
# Put parameters here that don't need to change on each machine where the app is deployed
# https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
parameters:
locale: 'fr'
services:
autowire: true
autoconfigure: true
public: false
App\:
resource: '../src/*'
exclude: '../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}'
App\Controller\:
resource: '../src/Controller'
tags: ['controller.service_arguments']
config / packages / doctrine.yaml
parameters:
env(DATABASE_URL): ''
doctrine:
dbal:
driver: 'pdo_pgsql'
server_version: '10.5'
charset: utf8mb4
default_table_options:
charset: utf8mb4
collate: utf8mb4_unicode_ci
url: '%env(resolve:DATABASE_URL)%'
orm:
auto_generate_proxy_classes: '%kernel.debug%'
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true
mappings:
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
alias: App
和我的.env
APP_ENV=dev
APP_SECRET=secret
DATABASE_URL="pgsql://erp_dev:My_PASSWORD@127.0.0.1:5432/erp"
MAILER_URL=null://localhost
编辑:
我试图将“ services:public:true”放入第二个答案中提到的services.yaml中,结果是一个新错误:
In DefinitionErrorExceptionPass.php line 54:
[Symfony\Component\DependencyInjection\Exception\RuntimeException]
Cannot autowire service "App\Repository\SocieteRepository": argument "$registry" of method "__construct()" refer
ences interface "Symfony\Bridge\Doctrine\RegistryInterface" but no such service exists. Did you create a class t
hat implements this interface?
Exception trace:
Symfony\Component\DependencyInjection\Compiler\DefinitionErrorExceptionPass->processValue() at /opt/www/jame/dataneo-erp/vendor/symfony/dependency-injection/Compiler/AbstractRecursivePass.php:60
Symfony\Component\DependencyInjection\Compiler\AbstractRecursivePass->processValue() at /opt/www/jame/dataneo-erp/vendor/symfony/dependency-injection/Compiler/DefinitionErrorExceptionPass.php:32
Symfony\Component\DependencyInjection\Compiler\DefinitionErrorExceptionPass->processValue() at /opt/www/jame/dataneo-erp/vendor/symfony/dependency-injection/Compiler/AbstractRecursivePass.php:39
Symfony\Component\DependencyInjection\Compiler\AbstractRecursivePass->process() at /opt/www/jame/dataneo-erp/vendor/symfony/dependency-injection/Compiler/Compiler.php:95
Symfony\Component\DependencyInjection\Compiler\Compiler->compile() at /opt/www/jame/dataneo-erp/vendor/symfony/dependency-injection/ContainerBuilder.php:736
Symfony\Component\DependencyInjection\ContainerBuilder->compile() at /opt/www/jame/dataneo-erp/vendor/symfony/http-kernel/Kernel.php:519
Symfony\Component\HttpKernel\Kernel->initializeContainer() at /opt/www/jame/dataneo-erp/vendor/symfony/http-kernel/Kernel.php:123
Symfony\Component\HttpKernel\Kernel->boot() at /opt/www/jame/dataneo-erp/vendor/symfony/framework-bundle/Console/Application.php:65
Symfony\Bundle\FrameworkBundle\Console\Application->doRun() at /opt/www/jame/dataneo-erp/vendor/symfony/console/Application.php:145
Symfony\Component\Console\Application->run() at /opt/www/jame/dataneo-erp/bin/console:39
这是命令的结果
php bin /控制台debug:container | grep学说
console.command.public_alias.doctrine_cache.contains_command alias for "doctrine_cache.contains_command"
console.command.public_alias.doctrine_cache.delete_command alias for "doctrine_cache.delete_command"
console.command.public_alias.doctrine_cache.flush_command alias for "doctrine_cache.flush_command"
console.command.public_alias.doctrine_cache.stats_command alias for "doctrine_cache.stats_command"
console.command.public_alias.doctrine_migrations.diff_command alias for "doctrine_migrations.diff_command"
console.command.public_alias.doctrine_migrations.execute_command alias for "doctrine_migrations.execute_command"
console.command.public_alias.doctrine_migrations.generate_command alias for "doctrine_migrations.generate_command"
console.command.public_alias.doctrine_migrations.latest_command alias for "doctrine_migrations.latest_command"
console.command.public_alias.doctrine_migrations.migrate_command alias for "doctrine_migrations.migrate_command"
console.command.public_alias.doctrine_migrations.status_command alias for "doctrine_migrations.status_command"
console.command.public_alias.doctrine_migrations.version_command alias for "doctrine_migrations.version_command"
doctrine_cache.abstract.apc Doctrine\Common\Cache\ApcCache
doctrine_cache.abstract.apcu Doctrine\Common\Cache\ApcuCache
doctrine_cache.abstract.array Doctrine\Common\Cache\ArrayCache
doctrine_cache.abstract.chain Doctrine\Common\Cache\ChainCache
doctrine_cache.abstract.couchbase Doctrine\Common\Cache\CouchbaseCache
doctrine_cache.abstract.file_system Doctrine\Common\Cache\FilesystemCache
doctrine_cache.abstract.memcache Doctrine\Common\Cache\MemcacheCache
doctrine_cache.abstract.memcached Doctrine\Common\Cache\MemcachedCache
doctrine_cache.abstract.mongodb Doctrine\Common\Cache\MongoDBCache
doctrine_cache.abstract.php_file Doctrine\Common\Cache\PhpFileCache
doctrine_cache.abstract.predis Doctrine\Common\Cache\PredisCache
doctrine_cache.abstract.redis Doctrine\Common\Cache\RedisCache
doctrine_cache.abstract.riak Doctrine\Common\Cache\RiakCache
doctrine_cache.abstract.sqlite3 Doctrine\Common\Cache\SQLite3Cache
doctrine_cache.abstract.void Doctrine\Common\Cache\VoidCache
doctrine_cache.abstract.wincache Doctrine\Common\Cache\WinCacheCache
doctrine_cache.abstract.xcache Doctrine\Common\Cache\XcacheCache
doctrine_cache.abstract.zenddata Doctrine\Common\Cache\ZendDataCache
doctrine_cache.contains_command Doctrine\Bundle\DoctrineCacheBundle\Command\ContainsCommand
doctrine_cache.delete_command Doctrine\Bundle\DoctrineCacheBundle\Command\DeleteCommand
doctrine_cache.flush_command Doctrine\Bundle\DoctrineCacheBundle\Command\FlushCommand
doctrine_cache.stats_command Doctrine\Bundle\DoctrineCacheBundle\Command\StatsCommand
doctrine_migrations.diff_command Doctrine\Bundle\MigrationsBundle\Command\MigrationsDiffDoctrineCommand
doctrine_migrations.execute_command Doctrine\Bundle\MigrationsBundle\Command\MigrationsExecuteDoctrineCommand
doctrine_migrations.generate_command Doctrine\Bundle\MigrationsBundle\Command\MigrationsGenerateDoctrineCommand
doctrine_migrations.latest_command Doctrine\Bundle\MigrationsBundle\Command\MigrationsLatestDoctrineCommand
doctrine_migrations.migrate_command Doctrine\Bundle\MigrationsBundle\Command\MigrationsMigrateDoctrineCommand
doctrine_migrations.status_command Doctrine\Bundle\MigrationsBundle\Command\MigrationsStatusDoctrineCommand
doctrine_migrations.version_command Doctrine\Bundle\MigrationsBundle\Command\MigrationsVersionDoctrineCommand
maker.doctrine_helper Symfony\Bundle\MakerBundle\Doctrine\DoctrineHelper
sensio_framework_extra.converter.doctrine.orm Sensio\Bundle\FrameworkExtraBundle\Request\ParamConverter\DoctrineParamConverter
sensio_framework_extra.converter.doctrine.orm.expression_language alias for "sensio_framework_extra.converter.doctrine.orm.expression_language.default"
sensio_framework_extra.converter.doctrine.orm.expression_language.default Symfony\Component\ExpressionLanguage\ExpressionLanguage
非常感谢您。
答案 0 :(得分:1)
在您的services.yml中更改以下行
服务:
public: false
通过
public:正确