UserController.php
4.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<?php
namespace App\Admin\Controllers;
use App\Admin\Metrics\Examples\Tickets;
use App\Admin\Renderable\CreateUser;
use App\Admin\Renderable\UserDetail;
use App\Admin\Repositories\User;
use App\Admin\Repositories\UserAddress;
use App\Admin\Service\UserService;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Http\Controllers\Dashboard;
use Dcat\Admin\Layout\Column;
use Dcat\Admin\Layout\Content;
use Dcat\Admin\Layout\Row;
use Dcat\Admin\Show;
use Dcat\Admin\Http\Controllers\AdminController;
use Illuminate\Support\Facades\Validator;
use Symfony\Component\HttpFoundation\Response;
class UserController extends AdminController
{
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid()
{
return Grid::make(new User(), function (Grid $grid) {
$grid->showFilter();
$grid->disableFilterButton();
$grid->disableRefreshButton();
$grid->disableBatchDelete();
// $grid->disableCreateButton();
$grid->model()->orderBy("id", "desc");
UserService::userListListField($grid);
UserService::userListTool($grid);
UserService::userListActions($grid);
UserService::userListFilter($grid);
});
}
/**
* Make a show builder.
*
* @param mixed $id
*
* @return Show
*/
protected function detail($id)
{
$address_list = (\App\Admin\Renderable\UserAddress::make(["key" => $id])->render());
return UserDetail::make(["key" => $id])->render() . $address_list;
}
/**
* Make a show builder.
*
* @param mixed $id
*
* @return Show
*/
public function create(Content $content)
{
return $content->body(CreateUser::make()->render());
}
/**
* Store a newly created resource in storage.
*
* @return mixed
*/
public function store()
{
try {
$data = request()->all();
$params = [
'company_name' => $data['company_name'],
'user_sn' => $data['user_sn'],
'first_name' => $data['first_name'],
'last_name' => $data['last_name'],
'phone' => $data['phone'],
'email' => $data['email'],
'account_properties' => $data['account_properties'],
'remark' => $data['remark'],
'user_address_list' => $data['user_address_list'] ?? [],
];
$validator = Validator::make($params, [
'company_name' => 'required',
'first_name' => 'required',
'last_name' => 'required',
'phone' => 'required',
'email' => 'required',
'account_properties' => 'required',
// 'user_address_list' => 'required',
// 'user_address_list.first_name' => 'required',
// 'user_address_list.last_name' => 'required',
// 'user_address_list.email' => 'required',
// 'user_address_list.phone' => 'required',
// 'user_address_list.country' => 'required',
// 'user_address_list.city' => 'required',
// 'user_address_list.post_code' => 'required',
// 'user_address_list.detail_address' => 'required',
// 'user_address_list.is_default' => 'required',
]);
if ($validator->fails()) {
$error = $validator->errors()->first();
throw new \Exception($error);
}
UserService::createUserAndAddress($params);
} catch (\Throwable $throwable) {
// var_dump((string)$throwable);
return Form::make()->response()
->error(trans('admin.save_failed'))
->withExceptionIf($throwable->getMessage(), $throwable);
}
$url = admin_url("/users");
return Form::make()->response()->success(admin_trans("succeeded"))->redirect($url);
}
}