Лучшая практика в CakePHP для того, чтобы сохранить данные, с помощью моделей в компоненте

Причина, по которой вы получаете ошибку, состоит в том, что вы должны сначала инициализировать массив , а затем вы можете push() значения для него.

  • Либо инициализируйте новый IUser с помощью year = [{your year}], а затем , затем , вы можете выдвинуть в него больше значений.
  • Или инициализируйте новый IUser объект с пустым массивом year, и затем вы можете выдвинуть значения к нему.
12
задан MSR 16 April 2009 в 10:56
поделиться

3 ответа

Если компонент анализирует загрузку данных из различных источников , его, вероятно, можно записать как поведение.

Если нет, и у вас нет другого выбора, кроме как использовать модель в своем компоненте, обязательно сделайте это правильно:

$this->ModelName = ClassRegistry::init('ModelName');

Лично я не вижу проблемы с этим, так как основные компоненты ( например, компонент Acl). Пока ваш компонент обрабатывает логику приложения , а модели обрабатывают данные , все будет в порядке.

24
ответ дан 2 December 2019 в 05:28
поделиться

На мой взгляд, СУХОЙ является критическим путем. С этой целью я вижу два варианта:

  1. Вместо сохранения данных в компоненте, верните их в контроллер в необработанном виде, который можно сохранить из контроллера.
  2. Продолжите и импортируйте модель в компонент и делай то, что тебе нужно. Это не поощряется, но они делают его достаточно легким.

Если бы дело дошло до трудного выбора, я бы допустил ошибку, оставив свое приложение СУХИМЫМ, а не придерживаясь строгой дисциплины MVC.

4
ответ дан 2 December 2019 в 05:28
поделиться

можно утверждать, что если вы хотите записать данные, сгенерированные в компоненте и иметь возможность упаковать компонент для распространения, это имеет смысл загрузить модель в вашем компоненте (особенно если Модель является частью вашего компонента).

Например, у меня компонент APARIZE.NET AIM (авторизация кредитной карты).

Из моего контроллера я вызывающую функцию зарядки компонентов. Auralize.net отправляет мне ответ (в пределах компонента) и в соответствии с сухой, я хотел бы сохранить данные в компоненте, поэтому мне не нужно повторять сохранение данных от того, где называется функция заряда.

Еще один плюс, чтобы освободить от Конвенции, будет тот факт, что я мог бы использовать модель из компонента, и не должен иметь модель в приложении.

Что вы думаете?

0
ответ дан 2 December 2019 в 05:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: