Как мне из базы вытащить данные и на основании этих данных сделать формочки?

Для работы с базой данных и создания форм в Symfony, вам потребуется воспользоваться ORM (Object-Relational Mapping) и компонентом Form.

Первым шагом является настройка соединения с базой данных. В Symfony это делается в файле config/packages/doctrine.yaml, где вы должны указать параметры подключения к базе данных, такие как тип БД, хост, порт, имя пользователя, пароль и имя базы данных.

Когда соединение настроено, вам необходимо создать сущности, которые будут представлять таблицы вашей базы данных. Сущности в Symfony создаются с использованием аннотаций или YAML-конфигураций. Вы можете указать аннотации непосредственно в вашем классе сущности, чтобы указать, какие поля и связи существуют.

В Symfony встроена ORM Doctrine, которая позволяет вам осуществлять операции с базой данных с использованием объектно-ориентированного подхода, в то время как сама ORM заботится о преобразовании объектов в записи и обратно. Вы можете получить доступ к Repository объектам для выполнения запросов к базе данных.

Например, чтобы получить все записи из таблицы "users", вы можете использовать следующий код в вашем контроллере:

$em = $this->getDoctrine()->getManager();
$users = $em->getRepository(User::class)->findAll();

Здесь User - это ваша сущность, и User::class возвращает полное имя класса сущности. Метод findAll() возвращает все записи из таблицы "users" в виде массива объектов User.

Для создания форм в Symfony вы можете использовать компонент Form, который предоставляет широкий набор инструментов для создания, отображения и обработки форм. Вы можете создать форму на основе вашей сущности, что позволит вам автоматически сгенерировать поля формы на основе полей сущности.

Пример создания формы на основе сущности:

$user = new User();
$form = $this->createForm(UserType::class, $user);

Здесь UserType - это класс формы, который должен содержать конфигурацию формы и определение полей.

Чтобы отобразить и обработать форму на веб-странице, вы можете использовать шаблонизатор Twig и соответствующие теги для вывода полей формы и кнопок отправки. Для обработки отправленной формы вы можете использовать метод handleRequest() для обновления объекта сущности и сохранения его в базе данных.

$form->handleRequest($request);

if ($form->isSubmitted() && $form->isValid()) {
    $em->persist($user);
    $em->flush();
}

Здесь $request - это объект Request, который представляет текущий HTTP-запрос.

Таким образом, с использованием ORM Doctrine и компонента Form в Symfony, вы можете легко извлекать данные из базы данных и создавать формы на основе этих данных. Это позволяет вам создавать мощные приложения, основанные на веб-технологиях, с минимальным количеством кода.