К точке:
— Я создал новый проект на Symfony 4.0: composer create-project symfony/skeleton sf4
— Страница приветствия работает
— Я хотел создать свою первую страницу с https://symfony.com/doc/current/page_creation.html
и я сделал именно то, что они говорят: создать контроллер и маршрут
— Страница приветствия изменила статус на: No route found for "GET /"
<-Solved
— путь к новой странице не найден — Ошибка 404
Что я делаю неправильно? Это глупо
~ SRC / Controller / SecurityController.php
<?php
namespace App\Controller;
use Symfony\Component\HttpFoundation\Response;
class SecurityController {
public function logowanie() {
return new Response(
'<html><body>Logowanie</body></html>'
);
}
}
~ Конфиг / routes.yaml
index:
path: /
controller: App\Controller\MainController::index
logowanie:
path: /logowanie
controller: App\Controller\SecurityController::logowanie
РЕДАКТИРОВАТЬ:
Домашняя страница работает — спасибо @Cerad
У меня такая же проблема. Домашняя страница работала, но любые другие URL генерируют 404, обслуживаемые apache и не вошедшие в Symfony.
Моей ошибкой была неправильная настройка виртуального хоста. Поскольку в общедоступном каталоге больше нет .htaccess, необходимо настроить перенаправление & переписать на своем виртуальном хосте.
Вот документация: https://symfony.com/doc/master/setup/web_server_configuration.html
В приложениях Symfony 4 нет ни реального маршрута, ни контроллера с шаблоном приветствия, это всего лишь хитрость для улучшения первого опыта пользователя.
Приветственный ответ работает только для корневого пути /
и после добавления маршрута или установки пакета, который добавляет один (например, TwigBundle), этот ответ исчезает, а также если режим отладки был деактивирован.
Даже, код состояния этого ответа все еще 404 (НЕ НАЙДЕНО).
Этот код является решением в Symfony 4.1:
composer require symfony/apache-pack
После ссылки можно использовать:
http://localhost/(name-project)/public/index.php/(name of controller)