我正在尝试与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。