Лучший способ создать приложение для бэк-офиса и фронт-офиса с Symfony 4

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

я пытался изменить свой security.yml так =>

access_control:
        - { path: ^/\w+/login, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/login_admin, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/, roles: ROLE_USER }
        - { path: ^/admin, roles: ROLE_ADMIN }

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

и в настоящее время я пытаюсь распознать общество в URL-адресе фронта, вот так (в моем config/routes.yaml) =>

salarie_index:
    path: /{_clientname}/*

И это работает нормально, НО, когда я пытаюсь получить доступ к своему офису, он теперь рассматривается как общество >__<"

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
111
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Хотя мне непонятно, чего вы пытаетесь достичь, похоже, вы слишком усложняете это. Что удерживает вас от разных маршрутов?

Вы могли бы просто указать маршрут для своего администратора: /admin

И еще маршрут для ваших компаний (общества): /company/{_clientname}

Ответ принят как подходящий

Извиняюсь,

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

На самом деле я думаю, что могу использовать конфигурацию для этой цели =>

маршруты.yml =>

#index:
#    path: /
#    controller: App\Controller\DefaultController::index

admin:
    resource: "../../src/Controller/Admin/"
    type: annotation
    prefix: '/admin'

salarie:
    resource: "../../src/Controller/Salarie/"
    type: annotation
    prefix: '/{_clientname}'
    requirements:
        _clientname: '^((\w+))+'
        #_clientname: '^(((?!admin).)(\w+))+'

И этот security.yml:

security:
    encoders:
        App\Entity\User:
            algorithm: auto
        App\Entity\Salarie:
            algorithm: auto


    # https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
    providers:
        # used to reload user from session & other features (e.g. switch_user)
        app_salarie_provider:
            entity:
                class: App\Entity\Salarie
                property: email
        app_admin_provider:
            entity:
                class: App\Entity\AdminUser
                property: email
        # used to reload user from session & other features (e.g. switch_user)
    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|ico|js)/
            security: false
        admin_area:
            anonymous: true
            pattern: ^/admin
            provider: app_admin_provider
            form_login:
                provider: app_admin_provider
                login_path: login_admin
                username_parameter: sign_in[email]
                password_parameter: sign_in[password]
                check_path: login_check_admin
            logout:
                path: /logout_admin
                target: /admin
        salarie:
            anonymous: true
            pattern: ^/\w+
            form_login:
                provider: app_salarie_provider
                login_path: login_salarie
                username_parameter: sign_in[email]
                password_parameter: sign_in[password]
                check_path: login_check_salarie
            logout:
                path: /logout
                target: /

            # activate different ways to authenticate
            # https://symfony.com/doc/current/security.html#firewalls-authentication

            # https://symfony.com/doc/current/security/impersonating_user.html
            # switch_user: true

    # Easy way to control access for large sections of your site
    # Note: Only the *first* access control that matches will be used
    access_control:
        - { path: ^/\w+/login, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/admin, roles: ROLE_ADMIN }
        - { path: ^/, roles: ROLE_USER }
    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

С этими файлами похоже, что я получил результат, который искал!

В любом случае спасибо за ответ, хорошего дня о/

Другие вопросы по теме