Sufir
Я не волшебник, я только учусь
Столкнулся на днях с такой, достаточно простой вещью. Есть обращения от клиентов с аттачами. Обращения хранятся в одной таблице, информация об аттачах в другой. Классический one-to-many.
Возникла ситуация, когда мне нужно было доработать некоторые вещи. Саму систему разрабатывал другой человек, более опытный чем я. Как это реализовано: есть форма, контроллер и две моддели.
Я обычно все действия с файлами проделываю в контроллере (возможно стоит эту задачу переложить на форму?) и в модель передаю уже готовые данные.
Хотелось бы узнать мнение и точку зрения "бывалых". Как правильно подходить к решению такой, достаточно тривиальной, задачи? Кто за что должен отвечать и что делать (форма, контроллер и две моддели)?
Возникла ситуация, когда мне нужно было доработать некоторые вещи. Саму систему разрабатывал другой человек, более опытный чем я. Как это реализовано: есть форма, контроллер и две моддели.
PHP:
// В контроллере происходит передача данных в модель
$model->save( $form->getData(), $form->getFiles() );
// В модели обращений (метод save) происходит запись данных в таблицу
$this->query(...);
// и сохранение необходимой информации о файлах
$modelFiles->save(...);
// Что делает метод save модели modelFiles
// Внутри него (!) происходит:
// 1. Запись в б.д. информации о файле
// 2. Переименование и перемещение файлов из tmp в в нужную директорию
// 3. UPDATE с путём к файлу
// Мотивация такая "файлы - это тоже данные, с данными работает модель".
PHP:
if ($form->validate()){
if ( $model->save( $form->getData() ){
$files = $form->getFiles();
// перемещение, переименование
$modelFiles->save( $files );
}
}