I want to use DB::Transaction to store option with values or rollback all
Why do you need a transaction here; what is the context, where is this createOptionWithValues method used?
Hello, i have this function in a service :
public function createOptionWithValues(array $data): Option
{
$data = $this->prepareOptionData($data);
$validationErrors = $this->validateOption($data);
if (!empty($validationErrors)) {
throw ValidationException::withMessages($validationErrors);
}
$option = new Option();
$option->title = $data['title'];
$option->normalized_title = $data['normalized_title'];
$option->type = OptionTypesEnum::from($data['type']);
$option->status_id = $data['status_id'];
$option->sort = $data['sort'] ?? 0;
$option->image = $data['image'] ?? null;
$option->meta_data = $data['meta_data'] ?? null;
$option->save();
// Create option values if provided
if (!empty($data['values'])) {
foreach ($data['values'] as $value) {
$this->createValue($option, $value);
}
}
return $option;
}
I want to use DB::Transaction to store option with values or rollback all
first: can we refactor this function second: can i use DB::Transaction in a service or in the controller
Please or to participate in this conversation.