Symfony & Doctrine - Полный профиль после регистрации пользователя

Приложение Symfony 4, и в настоящее время я использую пакет FOSUser для своей пользовательской системы.

Я хотел бы добавить полную функцию вашего профиля после того, как пользователь впервые зарегистрирует свою учетную запись. Возможно, он продолжает появляться до тех пор, пока не будет выполнено условие или не истечет время.

Для начала, что я должен добавить в свой класс User, чтобы пометить, что пользователя нужно перенаправить в / profile / complete?

т.е. Требуется ли одно дополнительное поле ... completeProfile с методами setCompleteProfile и hasCompleteProfile?

Как я могу установить условие или ограничение по времени, когда пользователю не нужно отмечать полный профиль?

т.е. это сделано в контроллере? какой сервис Symfony можно использовать?

Думаю, мне это понадобится только в ProfileController

TimothyAURA 17.12.2018 01:49

вы можете написать одну функцию в своем контроллере, где вы проверяете и перенаправляете пользователя или нет, и вызываете эту проверку в каждом действии

john Smith 17.12.2018 01:51

просто добавьте логическое поле для проверки

john Smith 17.12.2018 01:51

Хорошо, так что добавить completedProfile в мою сущность User?

TimothyAURA 17.12.2018 01:55

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

john Smith 17.12.2018 01:57

все хорошо :) Но для того, чтобы задать вопрос по SO, нужны как минимум what did you try и where did it fail, а в вашем нет ни того, ни другого.

john Smith 17.12.2018 02:10

ОК, все хорошо. В следующий раз я постараюсь несколько иначе структурировать свои вопросы.

TimothyAURA 17.12.2018 02:11
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
1
7
98
1

Ответы 1

У вас есть свойство $ registredAt и $ hasCompleteProfile в вашем Entity App \ Entity \ User или что-то еще? Вы можете сделать это в своем контроллере ...

public function yourController(User $user) {
        if (!$user->getHasCompleteProfile()) {  // Getters of $hasCompleteProfile inside App\Entity\User
            $completeProfileLimt = 4;           // In months or days, 4 is just and example
            $now = new \Datetime();
            $userRegistredDate = $user->getRegistredAt();

            $elapsedTime = $now - $userRegistredDate; // You can not do it like this but it's an example

            if ($elapsedTime > $completeProfileLimt) {
                // Your action
            }

            // Your Response Return
        }

        // Your Response Return
    }

Другие вопросы по теме