Definiowanie kilku ścieżek do jednego widoku w Symfony

  1. W aplikacji została zdefiniowana ścieżka i obsługujący ją kontroler.
    Kontroler ma za zadanie wyświetlić zawartość słownika.
use Symfony\Component\HttpFoundation\Request;
use App\Entity\VehicleType;
use App\Form\VehicleTypeFormType;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;

/**
* @Route("/admin/vehicle/type")
*/
class VehicleTypeController extends AbstractController
{
/**
* @Route("/", name="admin_vehicle_types")
*/
public function index()
{
$types = $this->getDoctrine()
->getRepository(VehicleType::class)
->findAll();

return $this->render('vehicle-type/index.html.twig', ['types' => $types]);
}
}
  1. Dostęp do wskazanego obszaru aplikacji został ograniczony dla użytkowników z określonym poziomem uprawnień poprzez w pliku config/packages/security.yaml
access_control:
- { path: ^/admin, roles: ROLE_ADMIN }
  1. Istnieje potrzeba udostępnienia wybranego obszaru aplikacji użytkownikom bez wymaganego poziomu uprawnień.
    Tworzymy więc w pliku config/routes.yaml odpowiedni wpis, który utworzy odpowiednią ścieżkę w aplikacji i zdefiniuje dla niej obsługujący ją kontroler:
user_vehicle_type:
path: /vehicle/type
controller: App\Controller\VehicleTypeController::index