Php 需要更多关于事件的澄清2
尝试学习Yii 2中的事件。我找到了一些资源。我得到更多关注的链接在这里 在第一条评论中,他举例说明。比如说,注册后我们有10件事要做——在这种情况下,活动很方便 调用该函数是一件大事?在model init方法中也发生了同样的事情:Php 需要更多关于事件的澄清2,php,yii2,Php,Yii2,尝试学习Yii 2中的事件。我找到了一些资源。我得到更多关注的链接在这里 在第一条评论中,他举例说明。比如说,注册后我们有10件事要做——在这种情况下,活动很方便 调用该函数是一件大事?在model init方法中也发生了同样的事情: $this->on(self::EVENT_NEW_USER, [$this, 'sendMail']); $this->on(self::EVENT_NEW_USER, [$this, 'notification']); 我的问题是使用事件的意义
$this->on(self::EVENT_NEW_USER, [$this, 'sendMail']);
$this->on(self::EVENT_NEW_USER, [$this, 'notification']);
我的问题是使用事件的意义是什么?我应该如何充分利用它们。请注意,这个问题纯粹是学习Yii 2的一部分。请举例说明。提前感谢。我对写入(默认)事件使用触发事件,如验证前或删除前。这是一个例子,为什么这样的事情是好的 假设您有一些用户。一些用户(例如管理员)可以编辑其他用户。但您需要确保遵循特定的规则(假设:
只有主管理员可以创建新用户,不能删除主管理员
)。然后,您可以使用这些写入的默认事件
在User
模型中(假设User
模型包含所有用户),您可以编写init()
以及您在init()中定义的所有其他方法:
已经定义了删除之前的self::EVENT\u
等常量,顾名思义,这一常量是在删除行之前触发的
现在,在任何控制器中,我们都可以编写一个触发这两个事件的示例:
public function actionIndex()
{
$model = new User();
$model->scenario = User::SCENARIO_INSERT;
$model->name = "Paul";
$model->save(); // `EVENT_BEFORE_INSERT` will be triggered
$model2 = User::findOne(2);
$model2->delete(); // `EVENT_BEFORE_DELETE` will be trigerred
// Something else
}
你读到“是”了吗?那对我没有帮助。@soju我回答你的问题了吗?:)
public function actionIndex()
{
$model = new User();
$model->scenario = User::SCENARIO_INSERT;
$model->name = "Paul";
$model->save(); // `EVENT_BEFORE_INSERT` will be triggered
$model2 = User::findOne(2);
$model2->delete(); // `EVENT_BEFORE_DELETE` will be trigerred
// Something else
}