Здравствуйте уважаемые форумчане. В качестве обучения придумал себе задачу (заранее предупреждаю структура бредовая):
Имеются таблицы:
firstname:
- id
- name
lastname:
- id
- id_firstname
- lastname
- patronymic
statistic
- id
- id_profession (ключ для таблицы profession ее здесь описано не будет)
- id_lastname
- time_work
- age
Вооот, для всех этих таблиц есть круды. Но хотелось бы чтобы у крудов lastname и statistic при создании новых записей была возможность создать имя и фамилию, а если есть и отчество из одной строки.
Что конкретнее я имею ввиду:
К примеру мы создаем запись lastname. На форме хотелось бы иметь два варианта создания - это просто строка где через пробел будут указаны имя фамилия и отчество и это отдельные поля для id_firstname, lastname и patronymic. Если запись создается из строки (имя фамилия отчество [отчество может отсутствовать]), то должна быть, я так понимаю, транзакция. Т.е. сначало создадим запись в таблицу firstname после чего lastname (нам же нужен id_firstname) и если что-то не так, то откатываем транзакцию.
Далее когда мы создаем statistic хотелось бы иметь такое же поле (имя фамилия отчество) и если мы создаем с помощью его новую запись, то должна быть транзакция по всем трем таблицам. В итоге получается что есть общая логика. Куда ее выносить? Как вообще правильно организовать код? Ведь хотелось бы, чтобы и ошибки при неправильно заполненных полях тоже показывались.
Может быть переопределять метод save() ? В общем кто что посоветует?
И еще вопрос это должно быть два метода create или один и в зависимости от поступаемых данных модель будет знать как сохранять?
Организация кода для специфической задачи
Re: Организация кода для специфической задачи
Настолько бредовая что читать не хочется столько букв
Re: Организация кода для специфической задачи
В целях обучения научитесь придумывать нормальную структуру БД.
Re: Организация кода для специфической задачи
По поводу транзакций посмотрите здесь: https://nix-tips.ru/yii2-api-guides/gui ... operations
Yii это MVC фрейворк, по этому принципу и определяйте логику.
Yii это MVC фрейворк, по этому принципу и определяйте логику.