与多个实体经理一起工作时出现错误500

时间:2019-04-05 02:11:42

标签: php symfony doctrine

我正在尝试与Symfony和Doctrine上的多个实体管理器/连接一起工作。默认的em可以正常工作,但是我的自定义em却不能。

实际上,我已经看过日志了,最后发生的是教义查询。之后,我得到了500错误。而不是Symfony。

我尝试用许多组合更改目录结构,但没有成功。我认为这根本不相关。

我尝试更改EM的doctrine.yaml配置:我尝试将auto_mapping设置为true,将“ dir”更改为"dir: '%kernel.project_dir%/src/Entity/VL""dir: '%kernel.project_dir%/src/Entity'",尝试将"prefix: 'App\Entity\VL'"更改为{{1 }},以及从"prefix: 'App\Entity'""App"的别名。也没有成功。

我也在控制器上尝试了一些操作,但我不记得了,因此感谢所有提示。

doctrine.yaml

"VL"

控制器(无需查询即可完美运行)

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);
    }

dev.log

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;
    //...
}

我希望从数据库中获取“ Landingpage”内容(使用名为“ vl”的连接/ em),但是查询后我只会得到错误500。

0 个答案:

没有答案