Я пытаюсь работать с несколькими менеджерами сущностей / соединениями в 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 после запроса.