本文整理汇总了PHP中DB::transaction方法的典型用法代码示例。如果您正苦于以下问题:PHP DB::transaction方法的具体用法?PHP DB::transaction怎么用?PHP DB::transaction使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DB
的用法示例。
在下文中一共展示了DB::transaction方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: up
/**
* Run the migrations.
*/
public function up()
{
Schema::create('character_set_structure', function (Blueprint $table) {
$table->increments('id');
$table->unsignedInteger('character_set_id')->index();
$table->unsignedInteger('version_number_id')->index();
$table->string('description');
$table->string('mysql_character_set');
// Composite keys
$table->unique(['character_set_id', 'version_number_id'], uniqid());
// Foreign keys
$table->foreign('character_set_id')->references('id')->on('character_set');
$table->foreign('version_number_id')->references('id')->on('version_number');
});
DB::transaction(function () {
CharacterSetStructure::unguard();
foreach ($this->data as $datum) {
$character_set = CharacterSet::where(['value' => $datum['character_set']])->firstOrFail();
$version_number = VersionNumber::where(['value' => $datum['version_number']])->firstOrFail();
$character_set_structure = new CharacterSetStructure();
$character_set_structure->description = $datum['description'];
$character_set_structure->mysql_character_set = $datum['mysql_character_set'];
$character_set_structure->characterSet()->associate($character_set);
$character_set_structure->versionNumber()->associate($version_number);
$character_set_structure->save();
}
CharacterSetStructure::reguard();
});
}
开发者ID:fisharebest,项目名称:webtrees-core,代码行数:32,代码来源:2015_12_31_006000_create_character_set_structure_table.php
示例2: store
/**
* Store a newly created resource in storage.
* POST /users
*
* @return Response
*/
public function store()
{
Input::merge(array_map('trim', Input::all()));
$input = Input::all();
$validation = Validator::make($input, User::$rules);
if ($validation->passes()) {
DB::transaction(function () {
$user = new User();
$user->first_name = strtoupper(Input::get('first_name'));
$user->middle_initial = strtoupper(Input::get('middle_initial'));
$user->last_name = strtoupper(Input::get('last_name'));
$user->dept_id = Input::get('department');
$user->confirmed = 1;
$user->active = 1;
$user->email = Input::get('email');
$user->username = Input::get('username');
$user->password = Input::get('password');
$user->password_confirmation = Input::get('password_confirmation');
$user->confirmation_code = md5(uniqid(mt_rand(), true));
$user->image = "default.png";
$user->save();
$role = Role::find(Input::get('name'));
$user->roles()->attach($role->id);
});
return Redirect::route('user.index')->with('class', 'success')->with('message', 'Record successfully added.');
} else {
return Redirect::route('user.create')->withInput(Input::except(array('password', 'password_confirmation')))->withErrors($validation)->with('class', 'error')->with('message', 'There were validation errors.');
}
}
示例3: handle
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
if ($this->beforeTransaction()) {
\DB::transaction($this->transaction());
$this->afterTransaction();
}
}
示例4: run
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
Model::unguard();
DB::transaction(function () {
DB::statement('SET foreign_key_checks = 0;');
DB::table('roles')->truncate();
DB::table('users')->truncate();
DB::table('folders')->truncate();
DB::table('q_and_a')->truncate();
DB::table('tags')->truncate();
DB::table('comment')->truncate();
DB::table('votes')->truncate();
DB::table('roles')->truncate();
DB::statement('SET foreign_key_checks = 1;');
$this->call(RolesTableSeeder::class);
$this->call(UsersSeeder::class);
$this->call(FoldersSeeder::class);
$this->call(QuestionsSeeder::class);
$this->call(TagsSeeder::class);
$this->call(AnswersSeeder::class);
$this->call(VotesSeeder::class);
$this->call(CommentForAnswerSeeder::class);
$this->call(CommentForQuestionSeeder::class);
});
Model::reguard();
}
示例5: nuevaCorreccionObservacion
public function nuevaCorreccionObservacion($inputs)
{
$Correspondencia = Correspondencia::find($inputs['IdCorrespondencia']);
if ($Correspondencia->getIdCaracter() == 1) {
DB::transaction(function () use($inputs) {
$oficio = new OficioSaliente();
$oficioU = Observaciones::find($inputs['IdObservaciones']);
$oficioU->Oficio_Saliente_Id = $inputs['IdConsecutivo'];
$oficioU->Observacion_Usuario_Id = $oficio->getIdRevisor($inputs['IdConsecutivo'], 1);
//Usuario que va a corregir
$oficioU->DescripcionObservaciones = $inputs['Observacion'];
$oficioU->save();
});
} else {
DB::transaction(function () use($inputs) {
$oficio = new OficioSaliente();
$oficioU = Observaciones::find($inputs['IdObservaciones']);
$oficioU->Oficio_Saliente_Id = $inputs['IdConsecutivo'];
$oficioU->Observacion_Usuario_Id = $oficio->getIdRevisor($inputs['IdConsecutivo'], $Correspondencia->getIdCaracter());
//Usuario que va a corregir
$oficioU->DescripcionObservaciones = $inputs['Observacion'];
$oficioU->save();
});
}
/*DB::transaction(function () use ($inputs, $path){
$oficioU = Correspondencia::find($inputs['IdCorrespondencia']);
$oficioU->URLPDF = $path;
$oficioU->save();
});*/
DB::transaction(function () use($inputs) {
$oficioU = Correspondencia::find($inputs['IdCorrespondencia']);
$oficioU->Estatus_Id = 401;
$oficioU->save();
});
}
示例6: approveApplication
public function approveApplication(Request $request)
{
$shop_card_application_id = $request->input('require_id');
$application = ShopCardApplication::find($shop_card_application_id);
$customer = Customer::find($application->customer_id);
$card_type = $application->cardType;
try {
\DB::transaction(function () use($application, $customer, $card_type) {
$customer_rows = \DB::table('customers')->where('id', $customer->id);
$customer_rows->lockForUpdate();
$customer_row = $customer_rows->first();
if ($customer_row->beans_total < $card_type->beans_value * $application->amount) {
throw new NotEnoughBeansException();
}
$cards = \DB::table('shop_cards')->where('card_type_id', '=', $card_type->id)->whereNull('customer_id')->limit($application->amount);
$cards->lockForUpdate();
if ($cards->count() < $application->amount) {
throw new CardNotEnoughException();
}
$customer->minusBeansByHand($application->amount * $card_type->beans_value);
$cards->update(['customer_id' => $customer->id, 'bought_at' => Carbon::now()]);
$application->update(['authorized' => true]);
return true;
});
} catch (CardNotEnoughException $e) {
return '相应卡片不足,无法继续。';
} catch (NotEnoughBeansException $e) {
return '用户迈豆不足!';
}
return "操作成功!";
}
示例7: handle
public function handle(CreateBehaviorDO $do)
{
\DB::transaction(function () use($do) {
$entity = new Model();
$entity->attributeSet()->associate($this->loadAttributeSetById($do->attribute_set_id));
$entity->representation()->associate($this->loadRepresentationEntity($do->representation_id));
$entity->name = $do->name;
$entity->label = $do->label;
$entity->default_value = $do->default_value;
$entity->max_values_count = $do->max_values_count;
$entity->required_create = $do->required_create;
$entity->required_order = $do->required_order;
$entity->save();
if (count($do->options)) {
foreach ($do->options as $optionDO) {
$optionEntity = $this->optionEntity($optionDO);
$entity->options()->save($optionEntity);
foreach ($optionDO->values as $valueDO) {
$valueEntity = $this->valueEntity(AttributeOptionModel::OBJECT_TYPE, $valueDO);
$optionEntity->values()->save($valueEntity);
}
}
$entity->options()->save($optionEntity);
}
if (count($do->values)) {
foreach ($do->values as $valueDO) {
$entity->objectValues()->save($this->valueEntity(Model::OBJECT_TYPE, $valueDO));
}
}
});
}
示例8: run
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$videoItems = array(array("Breakfast Show!", "This is the breakfast show description."), array("BBC News"), array("BBC News 24"), array("Dragons Den"), array("Mock The Week!"), array("Some Other Show"), array("Soundbooth Sessions"), array("The LA1 Show"), array("The One Show"), array("Star Wars"), array("Sugar TV!"), array("The Incredibles"), array("University Challenge"), array("Countdown"), array("8 out of 10 Cats Does Countdown"), array("Jurassic Park"), array("Jurassic Park 2"), array("Shrek"), array("Shrek 2"), array("Shrek 3"), array("Mission Impossible"));
foreach ($videoItems as $a) {
$mediaItemVideo = new MediaItemVideo(array("is_live_recording" => rand(0, 1) ? true : false, "time_recorded" => Carbon::now()->subHour(), "description" => rand(0, 4) === 0 ? "A description that should override the general media item one." : null, "enabled" => rand(0, 1) ? true : false));
$mediaItem = new MediaItem(array("name" => $a[0], "description" => count($a) >= 2 ? $a[1] : null, "enabled" => rand(0, 1) ? true : false, "scheduled_publish_time" => Carbon::now()));
DB::transaction(function () use(&$mediaItem, &$mediaItemVideo) {
$mediaItem->save();
$mediaItem->videoItem()->save($mediaItemVideo);
});
$this->addLikes($mediaItem);
$this->addComments($mediaItem);
}
//$mediaItemLiveStream = new MediaItemLiveStream(array(
// "enabled" => true
//));
$mediaItem = new MediaItem(array("name" => "Lunchtime Show!", "description" => "This is the lunchtime show description.", "enabled" => true, "scheduled_publish_time" => Carbon::now()));
DB::transaction(function () use(&$mediaItem, &$mediaItemLiveStream) {
$mediaItem->save();
// $mediaItem->liveStreamItem()->save($mediaItemLiveStream);
});
$this->addLikes($mediaItem);
$this->addComments($mediaItem);
$this->command->info('Media items created!');
}
示例9: addyear
public function addyear(Request $request)
{
$postData = $request->all();
$contractId = $postData['PdContract'];
$year = $postData['year'];
$qltyFormulas = PdContractQtyFormula::all();
$formulaValues = \FormulaHelpers::getDataFormulaContract($qltyFormulas, $contractId, $year);
$resultTransaction = \DB::transaction(function () use($qltyFormulas, $formulaValues, $contractId, $year) {
$attributes = ['CONTRACT_ID' => $contractId];
$yAttributes = ['CONTRACT_ID' => $contractId, 'YEAR' => $year];
$yValues = ['CONTRACT_ID' => $contractId, 'YEAR' => $year];
// PdContractYear::where($yAttributes)->delete();
foreach ($qltyFormulas as $key => $qltyFormula) {
$attributes['FORMULA_ID'] = $qltyFormula->ID;
$values = $attributes;
$calculation = PdContractCalculation::updateOrCreate($attributes, $values);
/* $sql = "INSERT INTO pd_contract_calculation(FORMULA_ID,CONTRACT_ID) "
. "VALUE(".$aryRequest['FORMULA_ID'.$id].",".$aryRequest['CONTRACT_ID'].")"; */
$formulaValue = (int) $formulaValues[$qltyFormula->ID];
$yAttributes['CALCULATION_ID'] = $calculation->ID;
$yValues['CALCULATION_ID'] = $calculation->ID;
$yValues['FORMULA_VALUE'] = $formulaValue;
$contractYear = PdContractYear::updateOrCreate($yAttributes, $yValues);
/* $val = (int) $aryValue[$formulaId[$key]]; // abc($id,$contractId) se thay bang cong thuc
$sql2 = "INSERT INTO pd_contract_year(CALCULATION_ID,YEAR,FORMULA_VALUE,CONTRACT_ID) VALUE($id,$year,'$val',$contractId)";
$sql2=str_replace("''", "NULL", $sql2); */
}
});
$results = $this->loadData($contractId, $postData);
return response()->json($results);
}
示例10: run
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
DB::transaction(function () {
// create admin user
$root = factory(App\User::class)->create(['name' => 'Administrator', 'email' => 'admin@example.com', 'password' => bcrypt('123456'), 'username' => 'admin', 'location' => 'Da Nang', 'country' => 'Viet Nam', 'biography' => 'Dev', 'occupation' => 'Dev', 'website' => 'greenglobal.vn', 'image' => 'avatar.jpg']);
// create default roles
$admin = new Role();
$admin->name = 'admin';
$admin->display_name = 'Administrator';
$admin->description = 'User is allowed to manage all system.';
$admin->active = 1;
$admin->save();
// create default guest roles
$guest = new Role();
$guest->name = 'guest';
$guest->display_name = 'Guest';
$guest->description = 'User are not logged in.';
$guest->active = 1;
$guest->save();
// attach roles
$root->attachRole($admin);
// create root permission
$admin = new NodePermission();
$admin->name = 'Root';
$admin->display_name = 'Root permission';
$admin->description = 'The root.';
$admin->save();
// create all permission to admin
$root = new PermissionRole();
$root->permission_id = 1;
$root->role_id = 1;
$root->status = 1;
$root->save();
});
}
示例11: postUpdate
public function postUpdate($id)
{
$rules = array('txtNombres' => 'required|min:2|max:100', 'txtApellidos' => 'required|min:2|max:100', 'txtEmail' => 'required|min:2|max:100', 'username' => 'required|min:2|max:100', 'txtPassword' => 'required|min:2|max:100', 'txtRol' => 'required|max:100', 'txtEstado' => 'required|max:100');
$messages = array('required' => 'El campo :attribute es obligatorio.', 'min' => 'El campo :attribute no puede tener menos de :min carácteres.', 'email' => 'El campo :attribute debe ser un email válido.', 'max' => 'El campo :attribute no puede tener más de :min carácteres.', 'unique' => 'El :attribute ingresado ya existe en la base de datos', "numeric" => "El campo :attribute debe ser un numero");
$friendly_names = array("txtNombres" => "Nombres", "txtApellidos" => "Apellidos", "txtEmail" => "Email", "username" => "Usuario", "txtPassword" => "Password", "txtRol" => "Rol", "txtEstado" => "Estado");
$validation = Validator::make(Input::all(), $rules, $messages);
$validation->setAttributeNames($friendly_names);
if ($validation->fails()) {
return Redirect::to('usuarios/modificar/' . $id)->withErrors($validation)->withInput();
} else {
try {
DB::transaction(function () use($id) {
$usuario = Usuario::find($id);
$usuario->username = strtoupper(Input::get("username"));
$usuario->nombres = strtoupper(Input::get("txtNombres"));
$usuario->apellidos = strtoupper(Input::get("txtApellidos"));
$usuario->email = strtoupper(Input::get("txtEmail"));
$usuario->password = strtoupper(Hash::make(Input::get("txtPassword")));
$usuario->roles_id = Input::get("txtRol");
$usuario->estado = Input::get("txtEstado");
$usuario->save();
});
} catch (ValidationException $ex) {
//return "1";
return Redirect::to("usuarios")->with("modificar", true);
} catch (Exception $ex) {
//return "2";
return Redirect::to("usuarios")->with("modificar", true);
}
return Redirect::to("admin")->with("modificar", true);
}
}
示例12: getExercise
public function getExercise()
{
$json_data = file_get_contents(public_path() . "/js/ejercicio4.json");
$json = json_decode($json_data);
DB::transaction(function () use(&$json) {
$results = DB::select("insert into Exercises (id, description) SELECT COALESCE(MAX(id),0) + 1, 'Interfaz de Constantes' FROM exercises RETURNING id ");
$exercise_id = $results[0]->id;
echo $exercise_id;
$step_number = 0;
foreach ($json->excercises as $step) {
$step_number++;
$results = DB::select("insert into explanations(id, description,exercise_id,step_number,incremental_example,progress) SELECT COALESCE(MAX(id),0) + 1, ?,?,?,?,? FROM explanations RETURNING id ", array($step->explanation, $exercise_id, $step_number, implode("\n", $step->incrementalText), $step->progress));
$explanation_id = $results[0]->id;
foreach ($step->answers as $answer) {
if (isset($answer->error)) {
$error = $answer->error;
} else {
$error = "";
}
$description = implode("\n", $answer->text);
$correct = $answer->rightAnswer ? 1 : 0;
$results = DB::select("insert into answers (id, description,exercise_id,error,correct,step_number) SELECT COALESCE(MAX(id),0) + 1, ?,?,?,?,? FROM answers RETURNING id ", array($description, $exercise_id, $error, $correct, $step_number));
}
}
});
echo var_dump(DB::getQueryLog());
}
示例13: requestRefund
public function requestRefund()
{
$order_id = Input::get('order_id');
$order = AgencyOrder::find($order_id);
if (!isset($order)) {
return Response::json(array('errCode' => 21, 'message' => '该订单不存在'));
}
$refund_record = RefundRecord::where('order_id', '=', $order_id)->get();
if (count($refund_record) != 0) {
return Response::json(array('errCode' => 22, 'message' => '申请已提交'));
}
if ($order->trade_status != 1 || $order->process_status != 1) {
return Response::json(array('errCode' => 23, 'message' => '该订单不可申请退款'));
}
try {
DB::transaction(function () use($order) {
$order->trade_status = 2;
$order->save();
$refund_record = new RefundRecord();
$refund_record->order_id = $order->order_id;
$refund_record->user_id = Sentry::getUser()->user_id;
$refund_record->save();
});
} catch (Exception $e) {
return Response::json(array('errCode' => 24, 'message' => '退款申请失败,请重新申请'));
}
return Response::json(array('errCode' => 0, 'message' => '申请成功'));
}
示例14: dUserNotice
public function dUserNotice()
{
if (!Sentry::check()) {
return Response::json(array('errCode' => 10, 'message' => '请登录'));
}
$user = Sentry::getUser();
$join_coms = ArticleJoinCom::where('receiver_id', '=', $user->id)->where('is_delete', '=', 0)->get();
$replys = ArticleJoinReply::where('receiver_id', '=', $user->id)->where('is_delete', '=', 0)->get();
try {
DB::transaction(function () use($replys, $join_coms) {
if (count($join_coms) != 0) {
foreach ($join_coms as $com) {
$com->is_delete = 1;
$com->save();
}
}
if (count($replys) != 0) {
foreach ($replys as $reply) {
$reply->is_delete = 1;
$reply->save();
}
}
});
} catch (\Exception $e) {
return Response::json(array('errCode' => 11, 'message' => '操作失败'));
}
return Response::json(array('errCode' => 0, 'message' => '删除成功'));
}
示例15: genBLMR
public function genBLMR(Request $request)
{
$postData = $request->all();
$pid = $postData['id'];
$shipCargoBlmr = $this->getShipCargoBlmr($pid);
$xid = $shipCargoBlmr ? $shipCargoBlmr->ID : 0;
$results = \DB::transaction(function () use($xid, $pid) {
$mdl = $this->modelName;
$transportType = $mdl::getTableName();
$shipCargoBlmr = ShipCargoBlmr::getTableName();
if ($xid > 0) {
// \DB::enableQueryLog();
$values = $this->getUpdateFields($shipCargoBlmr, $transportType);
ShipCargoBlmr::join($transportType, "{$transportType}.ID", '=', "{$shipCargoBlmr}.PARENT_ID")->where("{$shipCargoBlmr}.ID", $xid)->update($values);
// \Log::info(\DB::getQueryLog());
return 'Success(only update exist rows)';
} else {
$pdVoyage = PdVoyage::getTableName();
$storage = Storage::getTableName();
$values = $this->getInsertFields($pid, $pdVoyage, $storage, $transportType);
$mdl::join($pdVoyage, "{$pdVoyage}.ID", '=', "{$transportType}.VOYAGE_ID")->join($storage, "{$storage}.ID", '=', "{$pdVoyage}.STORAGE_ID")->where("{$transportType}.ID", $pid)->select($values)->chunk(10, function ($rows) {
ShipCargoBlmr::insert($rows->toArray());
});
return 'Success!';
}
});
return response()->json($results);
}