Symfony 4 make: entity --regenerate fail with: в пространстве имен "App" не найдено ни одного объекта - PullRequest
0 голосов
/ 30 мая 2018

из composer.json

{
    "name": "symfony/website-skeleton",
    "type": "project",
    "license": "MIT",
    "description": "A skeleton to start a new Symfony website",
    "require": {
        "php": "^7.1.3",
        "ext-iconv": "*",
        "sensio/framework-extra-bundle": "^5.1",
        "symfony/apache-pack": "^1.0",
        "symfony/asset": "^4.0",
        "symfony/console": "^4.0",
        "symfony/expression-language": "^4.0",
        "symfony/flex": "^1.0",
        "symfony/form": "^4.0",
        "symfony/framework-bundle": "^4.0",
        "symfony/lts": "^4@dev",
        "symfony/monolog-bundle": "^3.1",
        "symfony/orm-pack": "^1.0",
        "symfony/process": "^4.0",
        "symfony/security-bundle": "^4.0",
        "symfony/serializer-pack": "*",
        "symfony/swiftmailer-bundle": "^3.1",
        "symfony/translation": "^4.0",
        "symfony/twig-bundle": "^4.0",
        "symfony/validator": "^4.0",
        "symfony/web-link": "^4.0",
        "symfony/webpack-encore-pack": "*",
        "symfony/yaml": "^4.0"
    },
    "require-dev": {
        "symfony/browser-kit": "^4.0",
        "symfony/css-selector": "^4.0",
        "symfony/debug-pack": "*",
        "symfony/dotenv": "^4.0",
        "symfony/maker-bundle": "^1.5",
        "symfony/phpunit-bridge": "^4.0",
        "symfony/profiler-pack": "*",
        "symfony/web-server-bundle": "^4.0"
    },
    "config": {
        "preferred-install": {
            "*": "dist"
        },
        "sort-packages": true
    },
    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "App\\Tests\\": "tests/"
        }
    },
    "replace": {
        "symfony/polyfill-iconv": "*",
        "symfony/polyfill-php71": "*",
        "symfony/polyfill-php70": "*",
        "symfony/polyfill-php56": "*"
    },
    "scripts": {
        "auto-scripts": {
            "cache:clear": "symfony-cmd",
            "assets:install --symlink --relative %PUBLIC_DIR%": "symfony-cmd"
        },
        "post-install-cmd": [
            "@auto-scripts"
        ],
        "post-update-cmd": [
            "@auto-scripts"
        ]
    },
    "conflict": {
        "symfony/symfony": "*"
    },
    "extra": {
        "symfony": {
            "allow-contrib": false
        }
    }
}

из doctrine.yaml:

# /config/packages/doctrine.yaml
doctrine:
    dbal:
        default_connection: training
        connections:
            training:
                dbname:   "training"
                driver:   "pdo_mysql"
                host:     "localhost"
                port:     "3306"
                user:     "userdb"
                password: "XXXXXXXXXX"
                charset:  UTF8
                mapping_types:
                    bit: boolean
    orm:
        auto_generate_proxy_classes: "%kernel.debug%"
        default_entity_manager: training
        entity_managers:
            training:
                connection: training
                auto_mapping: true

команда:

php bin/console doctrine:mapping:import --em=training App\Entity annotation --path=src/Entity

производит в src/Entity Course.php entity:

<?php

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Course
 *
 * @ORM\Table(name="course", indexes={@ORM\Index(name="id_product_idx_1", columns={"id_product"}), @ORM\Index(name="enabled_idx_1", columns={"enabled"}), @ORM\Index(name="sort_idx_1", columns={"sort"})})
 * @ORM\Entity
 */
class Course
{
    ....

после запуска в консоли:

php bin/console make:entity --regenerate App

этот сбой с ошибкой:

В приложении не найдено ни одного объектапространство имен

то же самое для

php bin/console make:entity --regenerate App\Entity 

, если я попытаюсь

php bin/console make:entity --regenerate App\Entity\Course

, вывод будет

Не удалось найти метаданные Doctrineдля "App \ Entity \ Course".Это сопоставлено как сущность?

что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 15 декабря 2018

У меня та же ошибка, и исправление, которое я нахожу, заключается в добавлении repositoryClass ко всем моим сущностям:

@ORM\Entity(repositoryClass="App\Repository\DefaultRepository")

Окончательный код такой:

/**
 * Key
 *
 * @ORM\Table(name="`key`")
 * @ORM\Entity(repositoryClass="App\Repository\DefaultRepository")
 */

Надеждаэто поможет вам

0 голосов
/ 10 июня 2018

Посмотрите на config/packages/doctrine.yaml

 dir: '%kernel.project_dir%/src/Entity'

В этом проблема.Каждый .orm.yml ищет по этому пути.

...