我已创建了一个事务,但我想返回在一个json中创建的所有数据。我想使用Laravel 5.5中的Resources来做到这一点。
这是我的交易:
$firstUser = DB::transaction(function () use ($request) {
//Create Group Campany
$groupCompany = \App\GroupCompany::create([
'name' => $request['nameGroupCompany'],
'cod' => $request['codGroupCompany'],
]);
//Create Company
$company = \App\Company::create([
'group_company_id' => $groupCompany->id,
'name' => $request['nameCompany'],
'cod' => $request['codCompany'],
]);
//Create Group User
$groupUser = \App\GroupUser::create([
'name' => 'Admin',
'admin' => 1,
]);
$groupUser->companies()->attach($company->id);
//Create Person
$person = \App\Person::create([
'firstName' => $request['name'],
'middleName' => $request['middleName'],
'lastName' => $request['lastName'],
'dateOfBirth' => $request['dateOfBirth'],
]);
$person->groupUsers()->attach($groupUser->id);
//Create User
$newUser = \App\User::create([
'person_id' => $person->id,
'name' => $request['name'],
'email' => $request['email'],
'password' => bcrypt($request['password']),
]);
return ??????;
});
最后我打电话给我的资源:
return new FirstUserResource($firstUser);
我该怎么办?
非常感谢。
马塞尔
答案 0 :(得分:0)
如果您将所有数据作为单个json返回,我认为Collections会在这里帮助您吗?
$collection = collect([var1,var2]);
return $collection->toJson();
答案 1 :(得分:0)
将信息保存在array
中,然后保存,如下所示:
$groupCompanya = array('name' => $request['nameGroupCompany'],
'cod' => $request['codGroupCompany']);
$groupCompany = \App\GroupCompany::create($groupCompanya);
将所有数据收集到新的array
:
$result = array("groupCompany"=> $groupCompanya, "company" => $companya, "groupUser" => $groupUsera, "person"=>$persona, "newUser"=>$newUsera);
将其转换为json
和return
后:
$json = array("result" => $result);
return json_encode($json,JSON_UNESCAPED_UNICODE);