Управление профилями пользователей в Laravel Jetstream
Введение
Доступ к функциям управления профилями Laravel Jetstream осуществляется пользователем с помощью раскрывающегося меню навигации профиля пользователя в правом верхнем углу. Jetstream формирует представления и действия, которые позволяют пользователю обновлять свое имя, адрес электронной почты и, при необходимости, фотографию своего профиля.
Views / Pages
При использовании стека Livewire это представление отображается с использованием шаблона Blade resources/views/profile/update-profile-information-form.blade.php
. При использовании стека Inertia это представление отображается с помощью шаблона resources/js/Pages/Profile/UpdateProfileInformationForm.vue
.
Каждый из этих шаблонов получит весь объект аутентифицированного пользователя, так что вы можете добавить дополнительные поля в эти формы по мере необходимости. Любые дополнительные входные данные, добавленные в формы, будут включены в массив $input
, который передается вашему действию UpdateUserProfileInformation
.
Actions
Как принято для большинства функций Jetstream, логику, выполняемую для удовлетворения запросов на обновление профиля, можно найти в классе действий в вашем приложении. В частности, класс App\Actions\Fortify\UpdateUserProfileInformation
будет вызываться, когда пользователь обновляет свой профиль. Это действие отвечает за проверку ввода и обновление информации профиля пользователя.
Следовательно, любые настройки, которые вы хотите внести в эту логику, должны выполняться в этом классе. Действие получает текущего аутентифицированного пользователя $user
и массив $input
, который содержит все данные входящего запроса, включая обновленную фотографию профиля.
Фото профиля
Включение фото профиля
Если вы хотите разрешить пользователям загружать пользовательские фотографии профиля, вы должны включить эту функцию в файле конфигурации config/jetstream.php
. Чтобы включить эту функцию, просто раскомментируйте запись функции из элемента конфигурации функций в этом файле:
'features' => [
Features::profilePhotos(),
Features::api(),
Features::teams(),
],
Управление фотографиями профиля
По умолчанию Jetstream позволяет пользователям загружать собственные фотографии профиля. Эта функция поддерживается трейтом Laravel\Jetstream\HasProfilePhoto
, который автоматически присоединяется к вашему классу App\Models\User
во время установки Jetstream.
Этот трейт содержит такие методы, как updateProfilePhoto
, getProfilePhotoUrlAttribute
, defaultProfilePhotoUrl
и profilePhotoDisk
, которые могут быть перезаписаны вашим собственным классом App\Models\User
, если вам нужно настроить их поведение. Вы можете прочитать исходный код этого трейта, чтобы получить полное представление о функциях, которые он предоставляет вашему приложению.
Метод updateProfilePhoto
- это основной метод, используемый для хранения фотографий профиля, который вызывается действием UpdateUserProfileInformation
.
Laravel Vapor
По умолчанию дискs3
будет использоваться автоматически, когда ваше приложение работает в Laravel Vapor.
Удаление аккаунта
Страница управления профилем также включает панель действий, которая позволяет пользователю удалить свою учетную запись приложения. Когда пользователь решает удалить свою учетную запись, будет вызван класс действий App\Actions\Jetstream\DeleteUser
. Вы можете настроить логику удаления учетной записи в этом классе.
Перевод:
https://jetstream.laravel.com/1.x/features/profile-management.html
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)