ترتیب اجرای رویدادهای مدل در Yii2

ساخت وبلاگ
خود مدل یعنی yiibasemodel رویدادهای beforeValidate و afterValidate داره فقط ولی اکتیورکورد علاوه بر اونها، این رویدادها رو هم داره:
  • رویداد afterDelete (بعد از حذف مدل اتفاق میفته)
  • رویداد afterFind (بعد از پیدا کردن مدل با هر روشی مثل find و findAll و... اتفاق میفته)
  • رویداد afterRefresh (بعد از فراخوانی متد refresh روی مدل اتفاق میفته که دوباره مدل رو از دیتابیس میخونه)
  • رویداد afterSave (بعد از ذخیره‌کردن مدل اتفاق میفته)
  • رویداد afterValidate (بعد از اعتبارسنجی اتفاق میفته)
  • رویداد beforeDelete (موقع فراخوانی متد delete و قبل از حذف واقعی مدل اتفاق میفته - مثلاً میتونید رکوردهای وابسته رو داخلش حذف کنید یا به دسته دیگری منتقل کنید.
  • رویداد beforeSave (قبل از ذخیره‌کردن مدل اتفاق میفته)
  • رویداد beforeValidate (قبل از اعتبارسنجی اتفاق میفته)

ترتیب و اینکه کدوم یکی از اینها فراخوانی بشن بستگی به نحوه استفاده شما از مدل داره. برای مثال توی این کد:
$model = new Users;
$model->name = 'Ali';
$model->save(false);

فقط رویدادهای beforeSave و afterSave اتفاق میفته. اما توی کد زیر:
$model = Users::findOne(5);
$model->name = 'Ali';
$model->updateCounters(['visit' => 1]);
$model->save();
$model->refresh();

به ترتیب این رویدادها اتفاق میفتن:

نقل قول:


afterFind
beforeValidate
afterValidate
beforeSave
afterSave
afterRefresh

برنامه نویس...
ما را در سایت برنامه نویس دنبال می کنید

برچسب : نویسنده : خنجی prog بازدید : 167 تاريخ : چهارشنبه 13 مرداد 1395 ساعت: 20:08

خبرنامه