В Yii фото профиля можно загрузить несколькими способами, в зависимости от того, как вы хотите организовать процесс загрузки и хранения изображений.
1. Хранение фото на файловой системе:
- Создайте модель для пользователя, например, User
.
- Добавьте атрибут image
в модель User
, который будет использоваться для хранения пути к файлу изображения.
- В форме редактирования профиля пользователя добавьте поле типа file
, которое позволит пользователю выбрать файл с изображением.
- При сохранении формы обработайте загруженное изображение. Сохраните его на файловой системе (например, в папке uploads/profiles
), а затем сохраните путь к файлу в атрибуте image
модели User
.
2. Хранение фото в базе данных:
- Создайте таблицу user
в базе данных, в которой будет содержаться поле image
, тип которого можно выбрать в зависимости от используемой базы данных (например, BLOB
или LONGBLOB
).
- Создайте модель для пользователя, User
, и добавьте атрибут image
с типом CUploadedFile
вместо строки.
- В форме редактирования профиля пользователя добавьте поле типа file
для выбора файла изображения.
- При сохранении формы обработайте загруженное изображение. Сохраните его в поле image
таблицы user
.
3. Использование стороннего сервиса хранения фото:
- Зарегистрируйтесь в сервисе хранения фотографий (например, Amazon S3, Google Cloud Storage или других).
- В форме редактирования профиля пользователя добавьте поле типа file
для выбора файла изображения.
- При сохранении формы обработайте загруженное изображение. Загрузите его в выбранный сервис и сохраните URL изображения в атрибуте image
модели User
.
Независимо от выбранного способа, не забудьте добавить валидацию в модель пользователя для проверки типа файлов и размеров изображений, а также реализовать логику обновления или удаления старого изображения при загрузке нового.