Здравствуйте. Я остановился для себя на первом варианте. У всех моих фотографий одинаковые свойства, поэтому не имеет смысла делать несколько одинаковых таблиц или несколько моделей. Если же требуется различная обработка фотографий в разных модулях, можно сделать разные таблицы и разные модели.
Директорию для загрузки можно выбрать любую. В демо-проекте это делается в настройках модуля. Если нужно проверять права при отдаче файла, приходится загружать в protected.
Сначала попробовал найти что-нибудь подходящее. Посмотрите ссылки в начале статьи. Посмотрел github.com/yiiext. Ничего похожего не нашел. Если посоветуете конкретное расширение, буду благодарен.
Спасибо за комментарий. Согласен с тем, что метод подходит только в некоторых случаях. Несколько раз упомянул об этом в статье. Если точнее, в моем случае проекты небольшие, нагрузки невысокие. Требовался максимально удобный инструмент, на мой взгляд он получился. С учетом DActiveForm (см. «Последние штрихи»), в модели нужно всего лишь указать валидатор. Ну, и связи определить.
Теперь по пунктам:
1. Согласен, но для небольших проектов можно и так.
2. Такой способ предложен в официальном рецепте. Разумеется, загрузку можно делать вне контроллера. Про Form Builder почитаю внимательнее (мне пока достаточно DActiveForm с описанием нужных инпутов).
3. Изначально я опирался на официальный рецепт yiiframework.ru/doc/cookbook/ru/form.file.upload. Там действительно не описан actionUpdate(). Позже, в рецепте yiiframework.ru/doc/cookbook/ru/form.file.upload.fat.model об этом было написано отдельно (см. 3-й абзац рецепта).
4. Нет рекомендаций == вам решать. Вот и предложил свое решение.
Что касается велосипеда, я действительно вначале попробовал найти что-нибудь подходящее. Посмотрите ссылки в начале статьи. Посмотрел и github.com/yiiext. Ничего похожего не нашел. Если посоветуете конкретное расширение, буду благодарен.
Конструктивные замечания к коду охотно выслушаю.
Теперь по пунктам:
1. Согласен, но для небольших проектов можно и так.
2. Такой способ предложен в официальном рецепте. Разумеется, загрузку можно делать вне контроллера. Про Form Builder почитаю внимательнее (мне пока достаточно DActiveForm с описанием нужных инпутов).
3. Изначально я опирался на официальный рецепт yiiframework.ru/doc/cookbook/ru/form.file.upload. Там действительно не описан actionUpdate(). Позже, в рецепте yiiframework.ru/doc/cookbook/ru/form.file.upload.fat.model об этом было написано отдельно (см. 3-й абзац рецепта).
4. Нет рекомендаций == вам решать. Вот и предложил свое решение.
Что касается велосипеда, я действительно вначале попробовал найти что-нибудь подходящее. Посмотрите ссылки в начале статьи. Посмотрел и github.com/yiiext. Ничего похожего не нашел. Если посоветуете конкретное расширение, буду благодарен.