2013-04-26 4 views
1

Я разрабатываю некоторые functonalities, которые выполняют некоторые связанные с db вещи, поэтому это должно быть в моей активной модели записи.Можно ли установить флэш-сообщение в модели?

Я хотел бы дать некоторую обратную связь пользователю в зависимости от результатов запросов db с помощью setFlash.

Итак, мой вопрос: правильно ли устанавливать флэш-сообщение внутри модели вместо контроллера?

ответ

3

Вы можете получить доступ ко всем этим из контроллера:

запись уже существует - вы добавили $model->isNewRecord

вход - у вас есть if($model->save()) { //successful } else { //unsuccessful }

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

+0

Я не использую какую-либо функцию CActiveRecord, мои запросы выполняются с использованием DAO, поэтому '$ model-> isNewRecord' и' $ model-> save() 'не будут полезны, но вы правы. Я не должен помещать эти сообщения в и я знаю, как я это сделаю! Спасибо, в любом случае! – darkheir

2

Я бы сделал это с моего контроллера точно, но зачем вам это делать с моделью, хотя это не приведет к неприятностям, установив флеш-сообщение из модели?

В конце концов вы, наконец, пришел в контроллер от модели, вы можете установить от контроллера, глядя на возвращаемые значения/ответов от модели

+0

Да, но есть много возможных ответов: запись уже существует, добавлена ​​запись, исключение db, ... и я не уверен, что мне следует возвратить (логическое не обрабатывает все случаи). Может быть, вернем постоянный, что вы думаете об этом? – darkheir

+1

Если я сделаю это, я бы обработал следующими способами: Для уже существующей записи я бы проверил контроллер, а затем перешел к MOdel и для ответов, связанных с db, пользователю должен быть показан только успех и сбой, а не исключение db или другие сообщения. Эти детали были бы важны для разработчиков, которые можно отслеживать с помощью регистраторов. Thankyou – Niroj

+0

Yeap вот что я, наконец, сделал! – darkheir