#php #symfony #url
#php #symfony #url
Вопрос:
Я новичок в Symfony 3. Я успешно установил фреймворк, но теперь я хочу создать новый контроллер, а именно «ToDoController», и хочу запустить в нем функцию.
Это Контроллер:
<?php
namespace AppBundleController;
use SensioBundleFrameworkExtraBundleConfigurationRoute;
use SymfonyBundleFrameworkBundleControllerController;
use SymfonyComponentHttpFoundationRequest;
class ToDoController
{
/**
* @Route("/todos")
*/
public function indexAction()
{
echo "hello world";
}
}
Теперь, когда я ввожу следующий URL-адрес в браузере, он выдает мне ошибку 404 Not found.
Это скриншот браузера browser
Это и есть маршрутизация.файл yml в папке config
app:
resource: "@AppBundle/Controller/"
type: annotation
Я получаю следующую страницу, когда я ввожу следующий URL-адрес в браузере
Я просто хочу напечатать hello world, чтобы проверить, работает ли мой контроллер. Пожалуйста, помогите.
Комментарии:
1. Откуда
/todolist
он берется? Этот путь не определен ни в действии, ни для контроллера. Маршрутlocalhost/todos
должен работать, насколько я могу судить.2. вы добавили контроллер в routing.yml. app: ресурс: «@AppBundle/Controller/» тип: аннотация
3. todolist — это имя моего проекта. Я имею в виду имя папки проекта в моем корневом каталоге.
4. Если вы не добавляете префиксы к своим маршрутам, название проекта не имеет значения (если я здесь что-то не пропустил). Вы пробовали
localhost/todolist
? Определен ли проект на вашем локальном веб-сервере, чтобы можно было получить доступ к проекту через localhost?5. Я отредактировал вопрос. пожалуйста, проверьте. да, я пробовал localhost / todolist и выдает мне страницу на скриншоте 2.
Ответ №1:
Вы должны настроить свой Apache для размещения приложения на отдельном хосте.
Смотрите документацию, как это сделать
Что вы сделали, вы просто скопировали его в папку todolist
в корневом каталоге вашего apache. Но он должен быть у вас на отдельном хосте, а корнем документа этого хоста должна быть web
папка (хотя она может иметь другое имя и может быть перемещена).
Так что либо настройте виртуальный хост, либо сделайте localhost
так, чтобы у вас было только приложение Symfony. Другое решение — не использовать Apache, используйте встроенный веб-сервер ( ./bin/console server:run
)