Регистрация пользователя с помощью craft 3 cms

Я хотел создать коммерческий веб-сайт с помощью craft 3 cms. И я хотел создать регистрационную форму для родителей, чтобы у каждого родителя была учетная запись для использования на сайте. Затем, после того, как они войдут в систему, я хочу, чтобы они могли добавлять своих детей.

Можно ли это сделать с помощью поделки 3 см. Единственное, что я нашел, это форма регистрации пользователя в документации.

Если есть блог с документацией по интеграции этой функции с помощью craft 3 cms или есть что-то, что я пропустил до сих пор.


person Kirubel    schedule 30.10.2018    source источник


Ответы (1)


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

Мое решение будет следующим

  1. Разрешить публичную регистрацию

  2. Создайте два user groups:

    • Parent
    • Ребенок
  3. Установите группу пользователей по умолчанию на Parent

  4. Убедитесь, что у группы пользователей Parent есть разрешение: Назначить группы пользователей -> Назначить пользователей «дочерним» установлен флажок

  5. Создайте field group с одним полем:

    • parentId > number (more precisely int)
  6. Назначьте эту группу полей пользователям

  7. Создайте интерфейсную форму регистрации пользователя для родителей, чтобы они могли зарегистрироваться.

  8. И тогда вам понадобится еще одна форма для родителей, чтобы они могли зарегистрировать своих детей. Для этого родители должны быть авторизованы, иначе это не сработает.

  9. Вы можете проверить это с помощью

{% if not craft.app.user.isGuest %}

  {# Your child registration form #}

  <input type="hidden" id="parentId" name="parentId" value="{{ craft.app.user.id }}">

  {% else %}

  {# The user is not logged in #}

{% endif %}

Таким образом вы можете:

  • Отличайте родительских пользователей от дочерних, используя:

{% set userGroups = craft.app.user.identity.getGroups() %}

  • Получите вошедший в систему родительский пользовательский объект ребенка, используя:

{% set parent = craft.users().id( craft.app.user.identity.parentId ).one()%}

  • Получить авторизованных родителей детей

{% set children = craft.users().parentId( craft.app.user.id ).all() %}

person HunWalk    schedule 08.08.2019