خرید بک لینک
آموزش برنامه نویسی

آموزش تخصصی فریم ورک Yii

هنگامی که شما چند عملیات رو در یک فرآیند انجام دهید به آن Transaction می گویند
برای اجرای چند کوئری در یک فرآیند از transaction استفاده می کنیم .زمانی که همه عملیات ها به درستی اجرا بشه transaction اجرا میشه
در صورتی که یکی از این عملیات ها مشکلی در انجام داشته باشند , کل transaction انجام نمیشه , به این معنی که همه ی کارهایی که درست انجام شده به حالت قبل بر گشته میشه
برای استفاده از transaction در yii2 به صورت زیر عمل می کنیم :
قبل از همه namespace مربوط به transaction را فراخونی می کنیم

use yiidbQuery;
$coection = Yii::$app->db;

در کد زیر عملیات زیر انجام میشه :
۱٫ثبت کاربر جدید
۲٫دادن نقش به کاربر

در صورتی که عملیات بالا به درستی انجام بشه کد کامل اجرا می شود .اما در صورتی که هر کدوم از عملیات ها با مشکل مواجه بشود , کد اجرا نمیشه و اتفاقی در دیتابیس رخ نخواهد داد.

$transaction = $coection->beginTransaction();
try {
$user_model=$coection->createCommand()
->insert('tbl_user', [
'name' => 'goyii.ir',
'status' => 1,
])
->execute();
$coection ->createCommand()
->insert('tbl_user_roles', [
'role = "admin",
'user_id'=$user_model->id
])
->execute();
//.....
$transaction->commit();
} catch(Exception $e) {
$transaction->rollback();
}


برچسب: نویسنده: پندار توکلی تاريخ: پنجشنبه 22 مهر 1395 ساعت: 13:34

صفحه بندی