【问题标题】:Is it a good practice to set a flash message in the model?在模型中设置闪烁消息是一种好习惯吗?
【发布时间】:2013-04-26 07:13:34
【问题描述】:

我正在开发一些功能来执行一些与数据库相关的东西,所以它应该在我的活动记录模型中。

我想根据使用setFlash 的数据库查询结果向用户提供一些反馈。

所以我的问题是:在模型而不是控制器中设置 Flash 消息是一种好习惯吗?

【问题讨论】:

    标签: model yii flash-message


    【解决方案1】:

    您可以从控制器访问所有这些:

    条目已经存在 - 你有 $model->isNewRecord

    已添加条目 - 您有 if($model->save()) { //successful } else { //unsuccessful }

    最好让模型来定义模型,而不是定义应该向用户显示哪些消息 - 这就是控制器的用途。

    【讨论】:

    • 我没有使用某些 CActiveRecord 函数,我的查询是使用 DAO 执行的,所以 $model->isNewRecord$model->save() 不会有帮助,但你是对的,我不应该将这些消息放在控制器中,我知道我会怎么做!还是谢谢!
    【解决方案2】:

    我肯定会从我的控制器执行此操作,但是为什么您必须从 Model 执行此操作,但通过从 Model 设置 Flash 消息不会真正给您带来麻烦?

    在你最终从 Model 进入控制器之后,你可以通过查看 Model 返回的值/响应从控制器进行设置

    【讨论】:

    • 是的,但是有很多可能的响应:条目已经存在,添加了条目,数据库异常,......我不确定我应该返回什么(布尔值不会处理所有情况)。可能是返回一个常数,你怎么看?
    • 如果我要这样做,我将通过以下方式处理对于已经存在的条目,我将在控制器中签入,然后传递给 MOdel,对于与 db 相关的响应,应该只显示用户成功和失败,而不是 db-exception 或其他消息。这些细节对开发者来说非常重要,可以通过记录器进行跟踪。谢谢你
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-27
    • 2020-12-14
    • 2017-12-09
    • 2016-04-01
    • 2016-06-25
    • 2019-10-06
    • 1970-01-01
    相关资源
    最近更新 更多