Работает ли транзакция Laravel5 или нет, если я создаю метод вместо использования красноречивого или построителя запросоPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Работает ли транзакция Laravel5 или нет, если я создаю метод вместо использования красноречивого или построителя запросо

Сообщение Anonymous »

Я так беспокоюсь о своих операциях с используемыми операторами MySQL, такими как обновление, удаление, вставка, а также в Laravel Eloquent или Query builder, потому что я создал больше операторов MySQL с большим количеством условий внутри моего метода в контроллере, поэтому, если одно из этих условий или что-то произойдет или возникнет какая-либо проблема во время обработки моего метода в методе контроллера, я потеряю свою информацию или данные, которые я хочу вставить или обновить в свою базу данных.
Как показано ниже, я использовал функцию setNotification(), который я создаю в Notification Model, и у меня есть метод внутри этой модели, который я хочу назвать post_data, это метод в контроллере, поэтому, если я это сделаю, будет ли DB::beginTransaction() работать или нет, потому что я предпочитаю хранить все операторы MySQL внутри всех методов в модели.
Сейчас я использую транзакцию Laravel с Try catch
public function post_data() {

if (Request::ajax() && $this->CheckPermId_from_session(90)) {

$res = null;
$data = Request::except(['_token']);
$rules = [//rules varray];
$data = [//Input data];
$data['tranx_time'] = date("y-m-d H:m:s", time());
$val = Validator::make($data, $rules);
if ($val->fails()) {

$res = ['res' => false, 'form' => false, 'data', $data];
} else {

DB::beginTransaction();
try {

//$update = Teller::where('id', '=', Request::input('teller_till_id'))->update(array('balance' => Request::input('tell_balance')));
$updateTeller = Teller::where('id', '=', Request::input('chief_till_id'))->update(array('balance' => Request::input('last_chief_balance')));
$insertId = DB::table('till_transaction')->insertGetId($data);
if ($insertId && $updateTeller) {
$this->notification->setNotification([$data['to_account'], json_encode($this->group_code), $insertId, Request::input('chief_till_id'), $data['type'], date("Y-m-d H:m:s", time()), $data['type']]);
$res = ['res' => true, 'data', $data];
} else {
$res = ['res' => false, 'data', $data];
}
DB::commit();
} catch (Exception $e) {
DB::rollBack();
throw $e;
}
}
return $res;
}
}


Подробнее здесь: https://stackoverflow.com/questions/369 ... ing-eloque
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»