teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

2021/12/03 18:24

投稿

meron88
meron88

スコア50

title CHANGED
File without changes
body CHANGED
@@ -7,99 +7,4 @@
7
7
 
8
8
  いろいろ調べたのですが、laravelExcelだとExportsクラスのCollectionメソッドに値を取得してreturnするというものだったのですが、
9
9
  **UserExportAction.php**で取得した値をlaravelExcelを使用してCSV出力するにはどのように修正したら良いのでしょうか?
10
- よろしくお願いいたします。
10
+ よろしくお願いいたします。
11
-
12
-
13
- ### 該当のソースコード
14
-
15
- ```ここに言語を入力
16
- <?php
17
-
18
- namespace App\UseCases\User;
19
-
20
- use App\Constants\SystemSettings;
21
- use App\Models\Search\SearchCondition;
22
- use App\Models\User;
23
-
24
- class UserExportAction
25
- {
26
- public function __invoke(SearchCondition $searchCondition)
27
- {
28
-
29
- $userCode = $searchCondition->get('user_code');
30
- $userName = $searchCondition->get('user_name');
31
-
32
- $query = User::query();
33
- if (!is_null($userCode)) {
34
- $query->where('user_code', 'LIKE', $userCode);
35
- }
36
- if (!is_null($menuName)) {
37
- $query->where('user_name', 'LIKE', $menuName);
38
- }
39
- // 実際はもっと複雑な条件ですが省略しています
40
-
41
- return $query->get();
42
- }
43
- }
44
-
45
- ```
46
-
47
-
48
- ```php
49
- <?php
50
-
51
- namespace App\Http\Controllers;
52
-
53
- use App\Exports\UseruExport;
54
- use App\Models\Search\SearchCondition;
55
- use App\UseCases\User\UserExportAction;
56
- use Illuminate\Http\Request;
57
- use Maatwebsite\Excel\Excel;
58
-
59
- class UserController extends Controller
60
- {
61
- public function userExport(UserExportAction $action, Request $request)
62
- {
63
- $searchCondition = new SearchCondition($request->session()->get(config('session.key.search.user'));
64
- $users = $action($searchCondition);
65
-
66
- //$usersをUserExportクラスに渡したい
67
-
68
- return Excel::download(new UserExport, 'user.csv');
69
- }
70
- }
71
-
72
- ```
73
-
74
- ```php
75
- <?php
76
-
77
- namespace App\Exports;
78
-
79
- use Maatwebsite\Excel\Concerns\FromCollection;
80
- use Maatwebsite\Excel\Concerns\WithHeadings;
81
-
82
- class UserExport implements FromCollection, WithHeadings
83
- {
84
-
85
- /**
86
- * @return \Illuminate\Support\Collection
87
- */
88
- public function collection()
89
- {
90
- //
91
- }
92
-
93
- /**
94
- * @return array
95
- */
96
- public function headings() :array
97
- {
98
- return [
99
- 'ID','CODE','NAME'
100
- ];
101
- }
102
- }
103
-
104
-
105
- ```