رتبه موضوع:
  • 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
ترتیب اجرای رویدادهای مدل در Yii2
#1
خود مدل یعنی 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
پاسخ
تشکر شده توسط: megahamed22 , habibvafapour




کاربران در حال بازدید این موضوع: 1 مهمان