#php #laravel #multi-tenant #laravel-6 #cross-database
Вопрос:
Я хочу пересечь транзакцию базы данных в Laravel, у меня есть подключение к базе данных, но оно работает неправильно, оно выдает ошибку типа (Общая ошибка: превышен тайм-аут ожидания блокировки 1205; попробуйте перезапустить транзакцию)
class User extends Model
{
protected $connection = 'mysql';
}
class StudentDetail extends Model
{
protected $connection = 'tenant';
}
public function update($id){
try {
//in Controllerfile
//Default connection is 'tenant'
DB::beginTransaction();
DB::connection('mysql')->beginTransaction();
//create a role
$student = StudentDetail::find($id)
$student = student->update([
'name' => $request->name,
'type' => $request->type
]);
$user= Auth::user();
$uesr->last_accessed_date = date('Y-m-d H:i:s');
$uesr->update();
DB::commit();
DB::connection('mysql')->commit();
}
catch (Exception $e) {
DB::rollBack();
DB::connection('mysql')->rollBack();
}
return response()->json(['status' => true, 'message' => 'success']);
}