Ошибка 500 при работе с несколькими менеджерами сущностей - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь работать с несколькими менеджерами сущностей / соединениями в Symfony и Doctrine.По умолчанию они работают отлично, но мои пользовательские - нет.

На самом деле, я видел журналы, и последнее, что происходит, это Doctrine Query.После этого я получаю ошибку 500.И не Symfony.

Я пытался изменить структуру каталогов с таким количеством комбинаций, но безуспешно.Я думаю, что это вообще не связано.

Я попытался изменить конфигурации doctrine.yaml для EM: я попытался установить auto_mapping на true, изменил "dir" на "dir: '%kernel.project_dir%/src/Entity/VL" и "dir: '%kernel.project_dir%/src/Entity'", попытался изменить "prefix: 'App\Entity\VL'" до "prefix: 'App\Entity'", а псевдоним от "App" до "VL".Также безуспешно.

Я тоже кое-что пробовал на контроллере, но не помню, поэтому любые советы приветствуются.

doctrine.yaml

parameters:
    # Adds a fallback DATABASE_URL if the env var is not set.
    # This allows you to run cache:warmup even if your
    # environment variables are not available yet.
    # You should not need to change this value.
    env(DATABASE_URL): ''

doctrine:
    dbal:
        default_connection: default
        connections:
            default:
                # configure these for your database server
                driver: 'pdo_mysql'
                server_version: 'mariadb-10.1.37'
                charset: utf8mb4
                default_table_options:
                    charset: utf8mb4
                    collate: utf8mb4_unicode_ci

                url: '%env(resolve:DATABASE_URL)%'

            vl:
                # configure these for your database server
                driver: 'pdo_mysql'
                server_version: 'mariadb-10.1.37'
                charset: utf8mb4
                default_table_options:
                    charset: utf8mb4
                    collate: utf8mb4_unicode_ci

                url: '%env(resolve:VL_DATABASE_URL)%'


    orm:
        auto_generate_proxy_classes: true
        default_entity_manager: default
        entity_managers:
            default:
                naming_strategy: doctrine.orm.naming_strategy.underscore
                connection: default
                auto_mapping: true
                mappings:
                    App:
                        is_bundle: false
                        type: annotation
                        dir: '%kernel.project_dir%/src/Entity'
                        prefix: 'App\Entity'
                        alias: App

            vl:
                naming_strategy: doctrine.orm.naming_strategy.underscore
                connection: vl
                mappings:
                    App:
                        is_bundle: false
                        type: annotation
                        dir: '%kernel.project_dir%/src/Entity/VL'
                        prefix: 'App\Entity\VL'
                        alias: App

Контроллер(работает без запросов)

use App\Entity\VL\Landingpage;

//...

/**
     * @Route("/{slug}", name="vl_landingpage", host="127.0.0.1")
     */
    public function landingpage($slug)
    {
        $landingpage = $this->getDoctrine()->getRepository(Landingpage::class, 'vl')->findOneBy(['slug' => $slug]);
        $content = $landingpage->getContent();
        return new Response($content);
    }

Объект Landingpage

namespace App\Entity\VL;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity(repositoryClass="App\Repository\VL\LandingpageRepository")
 */
class Landingpage
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;
    //...
}

dev.log

[2019-04-04 22:57:39] request.INFO: Matched route "vl_landingpage". {"route":"vl_landingpage","route_parameters":{"_route":"vl_landingpage","_controller":"App\\Controller\\VendorLandingpageController::landingpage","slug":"teste"},"request_uri":"http://127.0.0.1:8000/teste","method":"GET"} []
[2019-04-04 22:57:39] security.DEBUG: Checking for guard authentication credentials. {"firewall_key":"main","authenticators":1} []
[2019-04-04 22:57:39] security.DEBUG: Checking support on guard authenticator. {"firewall_key":"main","authenticator":"App\\Security\\AppAuthenticator"} []
[2019-04-04 22:57:39] security.DEBUG: Guard authenticator does not support the request. {"firewall_key":"main","authenticator":"App\\Security\\AppAuthenticator"} []
[2019-04-04 22:57:39] security.INFO: Populated the TokenStorage with an anonymous Token. [] []
[2019-04-04 22:57:40] doctrine.DEBUG: SELECT t0.id AS id_1, t0.name AS name_2, t0.email AS email_3, t0.responsable_name AS responsable_name_4, t0.telephone AS telephone_5, t0.whatsapp AS whatsapp_6, t0.address AS address_7, t0.social_medias AS social_medias_8, t0.creation_date AS creation_date_9, t0.last_modified AS last_modified_10, t0.slug AS slug_11, t12.id AS id_13, t12.content AS content_14, t12.additional_css AS additional_css_15, t12.custom_js AS custom_js_16, t12.landingpage_id AS landingpage_id_17 FROM landingpage t0 LEFT JOIN landingpage_content t12 ON t12.landingpage_id = t0.id WHERE t0.slug = ? LIMIT 1 ["teste"] []

Я ожидаю получить содержимое "Landingpage" из базы данных(используя соединение / em с именем "vl"), но я получаю только ошибку 500 после запроса.

...