事件与事件管理器(Events and Events Manager)​

Models allow you to implement events that will be thrown when performing an insert/update/delete. They help define business rules for a certain model. The following are the events supported by Phalcon\Mvc\Model and their order of execution:

Operation

Name

Can stop operation?

Explanation

Inserting/Updating

beforeValidation

YES

Is executed before the fields are validated for not nulls/empty strings or foreign keys

Inserting

beforeValidationOnCreate

YES

Is executed before the fields are validated for not nulls/empty strings or foreign keys when an insertion operation is being made

Updating

beforeValidationOnUpdate

YES

Is executed before the fields are validated for not nulls/empty strings or foreign keys when an updating operation is being made

Inserting/Updating

onValidationFails

YES (already stopped)

Is executed after an integrity validator fails

Inserting

afterValidationOnCreate

YES

Is executed after the fields are validated for not nulls/empty strings or foreign keys when an insertion operation is being made

Updating

afterValidationOnUpdate

YES

Is executed after the fields are validated for not nulls/empty strings or foreign keys when an updating operation is being made

Inserting/Updating

afterValidation

YES

Is executed after the fields are validated for not nulls/empty strings or foreign keys

Inserting/Updating

beforeSave

YES

Runs before the required operation over the database system

Updating

beforeUpdate

YES

Runs before the required operation over the database system only when an updating operation is being made

Inserting

beforeCreate

YES

Runs before the required operation over the database system only when an inserting operation is being made

Updating

afterUpdate

NO

Runs after the required operation over the database system only when an updating operation is being made

Inserting

afterCreate

NO

Runs after the required operation over the database system only when an inserting operation is being made

Inserting/Updating

afterSave

NO

Runs after the required operation over the database system