как работать с новым контроллером в symfony 3

#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.

http://localhost/todolist/todos

Это скриншот браузера browser

введите описание изображения здесь

Это и есть маршрутизация.файл yml в папке config

 app:
    resource: "@AppBundle/Controller/"
    type:     annotation
  

Я получаю следующую страницу, когда я ввожу следующий URL-адрес в браузере

http://localhost/todolist/

введите описание изображения здесь

Я просто хочу напечатать 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 )