我正在开发一些功能,执行一些数据库相关的东西,所以它应该在我的活动记录模型。在模型中设置Flash消息是否是一种很好的做法?
我想给用户一些反馈,这取决于使用setFlash
的db查询的结果。
所以我的问题是:在模型内而不是控制器中设置一个flash消息是一个好习惯吗?
我正在开发一些功能,执行一些数据库相关的东西,所以它应该在我的活动记录模型。在模型中设置Flash消息是否是一种很好的做法?
我想给用户一些反馈,这取决于使用setFlash
的db查询的结果。
所以我的问题是:在模型内而不是控制器中设置一个flash消息是一个好习惯吗?
您可以从控制器访问所有这些然后设置:
项目已存在 - 你有$model->isNewRecord
添加条目 - 你有if($model->save()) { //successful } else { //unsuccessful }
模型应该最好留给定义模型,并没有确定哪些信息应该是显示给用户 - 这是控制器的用途。
我肯定会从我的控制器那里做到这一点,但为什么你必须从模型中做到这一点,但它不会真的让你陷入麻烦从设置模型的Flash消息?
毕竟你终于来了到控制器的型号,可以从控制器通过观察从型号
返回值/响应是的,但有很多可能的repsonse:入口已经存在,入口增加,数据库异常,...我不知道我应该返回什么(一个布尔值不会处理所有情况)。可能会返回一个常数,你怎么看待它? – darkheir 2013-04-26 07:28:46
如果我要做到这一点,我会采取以下方式处理 对于已经存在的条目,我会检查控制器,然后传递给MOdel 和db相关的响应,用户只应显示成功和失败,而不是db-exception或其他消息。这些细节对开发者来说很重要,可以用记录仪进行跟踪。 Thankyou – Niroj 2013-04-26 07:49:22
Yeap这就是我终于做到的! – darkheir 2013-04-26 07:56:20
我没有使用一些CActiveRecord函数,我的查询是使用DAO执行的,所以'$ model-> isNewRecord'和'$ model-> save()'不会有帮助,但你是对的我不应该把这些消息放在控制器,我知道我该怎么做!不管怎么说,还是要谢谢你! – darkheir 2013-04-26 07:35:05