回答編集履歴

1

追記

2020/02/22 01:07

投稿

kyoya0819
kyoya0819

スコア10429

test CHANGED
@@ -21,3 +21,87 @@
21
21
  ```
22
22
 
23
23
  みたいな感じにすると思います。
24
+
25
+
26
+
27
+
28
+
29
+ ### コード
30
+
31
+
32
+
33
+ テスト全くしてないので、動かなかった場合は言ってください。
34
+
35
+ ```PHP
36
+
37
+
38
+
39
+ public function update(Request $request, $id) {
40
+
41
+ $cat = Cat::find($id);
42
+
43
+
44
+
45
+ // 画像をリサイズ
46
+
47
+ $file = $request->file('mainimage_path');
48
+
49
+
50
+
51
+ if( !is_null( $file ) ) {
52
+
53
+ // 画像の拡張子を取得
54
+
55
+ $extension = $request->file('mainimage_path')->getClientOriginalExtension();
56
+
57
+ // 画像の名前を取得
58
+
59
+ $filename = $request->file('mainimage_path')->getClientOriginalName();
60
+
61
+ $timestamp = time();
62
+
63
+ $filename = $timestamp . $filename;
64
+
65
+ // 画像をリサイズ変更したところ
66
+
67
+ $width = 500;
68
+
69
+ $resize_img = Image::make($file)->resize($width, null, function($constraint){
70
+
71
+ $constraint->aspectRatio();
72
+
73
+ });
74
+
75
+
76
+
77
+ $path = Storage::disk('s3')->put('/myprefix/'.$filename, $resize_img->stream()->__toString(), 'public');
78
+
79
+ // 画像のURLを参照
80
+
81
+ $url = Storage::disk('s3')->url('myprefix/'.$filename);
82
+
83
+ //dd($url);
84
+
85
+
86
+
87
+ }
88
+
89
+
90
+
91
+ $cat->mainimage_path = $url;
92
+
93
+
94
+
95
+ $cat->save();
96
+
97
+
98
+
99
+ return redirect()->action('CatsController@index');
100
+
101
+
102
+
103
+ }
104
+
105
+ ```
106
+
107
+ これ以上はMigrationやバリデーションも欲しいです。