私はLaravelバージョン5.2.31を使用しています。私はCircuitControllerとCircuitServiceに構造化されたコードを持っていて、Javaで何をすべきかのようないくつかの関数を再利用しています。Laravelでトランザクションを処理する方法
CircuitController:
public function pickingAtCarton(Request $request){ $circuitService = new CircuitService(); // Do some business here $circuitService->completeCircuit($circuit_id); $circuitService->completeBoxAtCircuit($circuit_id); }
2.CircuitService:
public function completeCircuit($circuit_id, $user){
$circuit = Circuit::find($circuit_id);
$circuit->status = Config::get('constants.status.tour.completed');
$circuit->pick_by = Auth::user();
$circuit->complete_time=Carbon::now();
//update complete time later.
$circuit->save();
}
public function completeBoxAtCircuit($circuit_id, $user){
DB::table('box_at_circuit')
->where('circuit_id', $circuit_id)
->update(['status'=> Config::get('constants.status.tour.completed')]);
}
どのように私は、トランザクションで働いていたこれらの2つの方法を行うことができますか?
public function pickingAtCarton(Request $request) {
DB::transaction(function ($request) use ($request) {
$circuitService = new CircuitService();
// Do some business here
$circuitService->completeCircuit($circuit_id);
$circuitService->completeBoxAtCircuit($circuit_id);
});
}