2017-02-06 10:34:47 3112次浏览 4条回答 0 悬赏 145 金钱

首先,事件的使用我看了很多遍,我也知道该如何使用。
事件先绑定,再触发。
那假如有这么一段代码:

$user = new User();
if($user->load(Yii::$app->request->getPost()) && $user->save())
{
    // 注册成功发邮件
}else{
    // 注册失败跳转页面
}

这个场景下,我怎么使用事件呀?比如现在注册成功以后不仅要发送邮件,还要发送短信。
事件不是为了解决不改这段代码然后实现类似钩子一样的能力吗?

  • 回答于 2017-02-06 10:56 举报

    trigger方法 触发

  • 回答于 2017-02-06 12:12 举报

    从使用的角度,对于事件我们主要需要关注两个方法:on 和 trigger,Yii为我们提供了好多默认的事件比如beforeSave afterSave等,所以通常来讲我们设置好相应的on就行了。你的代码应该在$user = new User();下面加上形影的on就好了。$user->on(User::AFTERSAVE,handler)

    2 条回复
    回复于 2017-02-06 12:14 回复

    当然handler需要你自己写。

    回复于 2017-02-06 13:42 回复

    我好想有点开窍了,谢谢您,我再理解理解

  • 回答于 2017-02-10 16:47 举报

    $ransaction = Yii::$app->db->beginTransaction();

        try {
            (最好把你要执行的代码封装成方法在这调用)
            $ransaction->commit(); // 没错误 执行
        } catch (\Exception $exc) {
            $ransaction->rollBack();// 有错误
           
        }
    
  • 回答于 2017-02-16 17:01 举报

    设置场景也可以解决这样的需求吧,

您需要登录后才可以回答。登录 | 立即注册
数字派
总监

数字派 北京

注册时间:2016-04-19
最后登录:2023-03-07
在线时长:52小时34分
  • 粉丝10
  • 金钱1515
  • 威望10
  • 积分2135

热门问题