Maison > Questions et réponses > le corps du texte
J'essaie de créer un utilisateur d'entité à l'aide de la ligne de commande php bin/console make:entity
Mais cela continue de me donner cette erreur :
In DoctrineHelper.php line 187: Cannot access protected property Doctrine\ORM\Mapping\Driver\AnnotationDriver::$classNames make:entity [-a|--api-resource] [-b|--broadcast] [--regenerate] [--overwrite] [--] [<name>]
J'ai téléchargé toutes les exigences selon les instructions du site officiel https://symfony.com/doc/5.4/doctrine.html
composer.json
:
{ "type": "project", "license": "proprietary", "minimum-stability": "stable", "prefer-stable": true, "require": { "php": ">=7.2.5", "ext-ctype": "*", "ext-iconv": "*", "doctrine/annotations": "^1.0", "doctrine/doctrine-bundle": "^2.6", "doctrine/doctrine-migrations-bundle": "^3.2", "doctrine/orm": "^2.12", "phpdocumentor/reflection-docblock": "^5.3", "phpstan/phpdoc-parser": "^1.4", "sensio/framework-extra-bundle": "^6.1", "symfony/apache-pack": "^1.0", "symfony/asset": "5.4.*", "symfony/console": "5.4.*", "symfony/doctrine-messenger": "5.4.*", "symfony/dotenv": "5.4.*", "symfony/expression-language": "5.4.*", "symfony/flex": "^1.17|^2", "symfony/form": "5.4.*", "symfony/framework-bundle": "5.4.*", "symfony/http-client": "5.4.*", "symfony/intl": "5.4.*", "symfony/mailer": "5.4.*", "symfony/mime": "5.4.*", "symfony/monolog-bundle": "^3.0", "symfony/notifier": "5.4.*", "symfony/process": "5.4.*", "symfony/property-access": "5.4.*", "symfony/property-info": "5.4.*", "symfony/proxy-manager-bridge": "5.4.*", "symfony/runtime": "5.4.*", "symfony/security-bundle": "5.4.*", "symfony/serializer": "5.4.*", "symfony/string": "5.4.*", "symfony/translation": "5.4.*", "symfony/twig-bundle": "5.4.*", "symfony/validator": "5.4.*", "symfony/web-link": "5.4.*", "symfony/webapp-meta": "^1.0", "symfony/webpack-encore-bundle": "^1.12", "symfony/yaml": "5.4.*", "twig/extra-bundle": "^2.12|^3.0", "twig/twig": "^2.12|^3.0" }, "config": { "allow-plugins": { "composer/package-versions-deprecated": true, "symfony/flex": true, "symfony/runtime": true }, "optimize-autoloader": true, "preferred-install": { "*": "dist" }, "sort-packages": true }, "autoload": { "psr-4": { "App\": "src/" } }, "autoload-dev": { "psr-4": { "App\Tests\": "tests/" } }, "replace": { "symfony/polyfill-ctype": "*", "symfony/polyfill-iconv": "*", "symfony/polyfill-php72": "*" }, "scripts": { "auto-scripts": { "cache:clear": "symfony-cmd", "assets:install %PUBLIC_DIR%": "symfony-cmd" }, "post-install-cmd": [ "@auto-scripts" ], "post-update-cmd": [ "@auto-scripts" ] }, "conflict": { "symfony/symfony": "*" }, "extra": { "symfony": { "allow-contrib": false, "require": "5.4.*" } }, "require-dev": { "symfony/debug-bundle": "5.4.*", "symfony/maker-bundle": "^1.38", "symfony/stopwatch": "5.4.*", "symfony/web-profiler-bundle": "5.4.*" } }
P粉7482188462024-03-26 22:16:46
Ce problème est déclenché par la nouvelle version Doctrine ORM 2.12.0
Jusqu'à ce que Symfony ou Doctrine proposent un correctif (je n'ai pas encore eu le temps de vérifier quel paquet est "problématique"), vous pouvez rétrograder vers Doctrine ORM 2.11.3.
Modifiez la ligne suivante dans votre composer.json
:
"doctrine/orm": "^2.12",
À :
"doctrine/orm": "^2.11",
et modifiez votre section conflict
pour que la 2.12 ne soit pas installée :
"conflict": { "symfony/symfony": "*", "doctrine/orm": "2.12.0" },
Après cela, courir composer updatedoctrine/orm
来降级软件包,bin/console make:entity
devrait à nouveau fonctionner.
J'ai découvert que le problème avait été signalé à symfony/maker-bundle il y a quelques jours. Surveiller ce problème est un bon moyen de savoir quand vous pouvez mettre à niveau votre bundle Maker et supprimer les doctrine/orm
déclarations contradictoires de votre configuration.