Laravel 交易 return 空
Laravel transaction return null
我正在尝试使用数据库事务进行查询。当我的方法 运行 将时间数据正确插入相应的 table.but 时,它 return 为空。
我的代码
return $result = DB::transaction(function() use ($attributes) {
$service = $this->service->create($attributes);
$visibilityAttributes = $attributes['dropdown_option_id'];
$visibilityAttributes = array_map('intval', $visibilityAttributes);
$service->visibility()->sync($visibilityAttributes);
},3);
如果您想 return 任何值,请尝试以下代码:
$result = DB::transaction(function() use ($attributes) {
$service = $this->service->create($attributes);
$visibilityAttributes = $attributes['dropdown_option_id'];
$visibilityAttributes = array_map('intval', $visibilityAttributes);
$service->visibility()->sync($visibilityAttributes);
return $service;
},3);
return $result
通过返回值取代函数来尝试下面的代码。
$result = DB::transaction(function() use ($attributes) {
$service = $this->service->create($attributes);
$visibilityAttributes = $attributes['dropdown_option_id'];
$visibilityAttributes = array_map('intval', $visibilityAttributes);
$service->visibility()->sync($visibilityAttributes);
},3);
return $result;
DB::transaction()
returns 无论闭包传递给它什么 returns。由于您的闭包没有 return 任何东西,因此 DB::transaction()
将 return null
。您需要在闭包中添加 return
语句。
return $result = DB::transaction(function() use ($attributes) {
$service = $this->service->create($attributes);
$visibilityAttributes = $attributes['dropdown_option_id'];
$visibilityAttributes = array_map('intval', $visibilityAttributes);
$service->visibility()->sync($visibilityAttributes);
// This value will be returned from DB::transaction().
return $service;
},3);
我正在尝试使用数据库事务进行查询。当我的方法 运行 将时间数据正确插入相应的 table.but 时,它 return 为空。
我的代码
return $result = DB::transaction(function() use ($attributes) {
$service = $this->service->create($attributes);
$visibilityAttributes = $attributes['dropdown_option_id'];
$visibilityAttributes = array_map('intval', $visibilityAttributes);
$service->visibility()->sync($visibilityAttributes);
},3);
如果您想 return 任何值,请尝试以下代码:
$result = DB::transaction(function() use ($attributes) {
$service = $this->service->create($attributes);
$visibilityAttributes = $attributes['dropdown_option_id'];
$visibilityAttributes = array_map('intval', $visibilityAttributes);
$service->visibility()->sync($visibilityAttributes);
return $service;
},3);
return $result
通过返回值取代函数来尝试下面的代码。
$result = DB::transaction(function() use ($attributes) {
$service = $this->service->create($attributes);
$visibilityAttributes = $attributes['dropdown_option_id'];
$visibilityAttributes = array_map('intval', $visibilityAttributes);
$service->visibility()->sync($visibilityAttributes);
},3);
return $result;
DB::transaction()
returns 无论闭包传递给它什么 returns。由于您的闭包没有 return 任何东西,因此 DB::transaction()
将 return null
。您需要在闭包中添加 return
语句。
return $result = DB::transaction(function() use ($attributes) {
$service = $this->service->create($attributes);
$visibilityAttributes = $attributes['dropdown_option_id'];
$visibilityAttributes = array_map('intval', $visibilityAttributes);
$service->visibility()->sync($visibilityAttributes);
// This value will be returned from DB::transaction().
return $service;
},3);