回答編集履歴
6
`$request->hasFile(...)` というチェックを追加しました。
test
CHANGED
@@ -38,7 +38,9 @@
|
|
38
38
|
|
39
39
|
|
40
40
|
|
41
|
-
if ($request->file('image')->isValid()) {
|
41
|
+
if ($request->hasFile('image') && $request->file('image')->isValid()) {
|
42
|
+
|
43
|
+
// ファイルが存在し、アップロードに問題がなかった場合
|
42
44
|
|
43
45
|
$path = $request->image->storePubliclyAs('/task', $stock_cosmetic->id . '.jpg', ['disk' => 's3']);
|
44
46
|
|
5
StockController@storeを修正しました。
test
CHANGED
@@ -32,17 +32,21 @@
|
|
32
32
|
|
33
33
|
$stock_cosmetic->user_id = Auth::id();
|
34
34
|
|
35
|
+
|
36
|
+
|
37
|
+
$stock_cosmetic->save();
|
38
|
+
|
39
|
+
|
40
|
+
|
35
41
|
if ($request->file('image')->isValid()) { // ファイルが存在し、アップロードに問題がなかった場合
|
36
42
|
|
37
43
|
$path = $request->image->storePubliclyAs('/task', $stock_cosmetic->id . '.jpg', ['disk' => 's3']);
|
38
44
|
|
39
45
|
$stock_cosmetic->image = $path;
|
40
46
|
|
47
|
+
$stock_cosmetic->save();
|
48
|
+
|
41
49
|
}
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
$stock_cosmetic->save();
|
46
50
|
|
47
51
|
```
|
48
52
|
|
4
StockController@storeのコード例を修正し、参考リンクも追記しました。
test
CHANGED
@@ -32,12 +32,20 @@
|
|
32
32
|
|
33
33
|
$stock_cosmetic->user_id = Auth::id();
|
34
34
|
|
35
|
-
|
35
|
+
if ($request->file('image')->isValid()) { // ファイルが存在し、アップロードに問題がなかった場合
|
36
36
|
|
37
|
+
$path = $request->image->storePubliclyAs('/task', $stock_cosmetic->id . '.jpg', ['disk' => 's3']);
|
38
|
+
|
37
|
-
$stock_cosmetic->image = $path;
|
39
|
+
$stock_cosmetic->image = $path;
|
40
|
+
|
41
|
+
}
|
38
42
|
|
39
43
|
|
40
44
|
|
41
45
|
$stock_cosmetic->save();
|
42
46
|
|
43
47
|
```
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
参考: [ファイル](https://readouble.com/laravel/8.x/ja/requests.html#files)
|
3
追記した文の軽微な改善
test
CHANGED
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
|
20
20
|
|
21
|
-
また、StockControllerクラスのstoreメソッドでも、S3でのパスをモデルに保存する必要
|
21
|
+
また、StockControllerクラスのstoreメソッドでも、S3でのパスをモデルのimageプロパティに保存する必要がありそうです。
|
22
22
|
|
23
23
|
|
24
24
|
|
2
StockController@storeの修正について追記しました。
test
CHANGED
@@ -11,3 +11,33 @@
|
|
11
11
|
<img src="{{ Storage::disk('s3')->url("task/{$stock_cosmetic->id}.jpg") }}">
|
12
12
|
|
13
13
|
```
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
(追記)
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
また、StockControllerクラスのstoreメソッドでも、S3でのパスをモデルに保存する必要もありそうです。
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
```php
|
26
|
+
|
27
|
+
$stock_cosmetic = new StockCosmetic();
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
$stock_cosmetic->color = $request->input('product');
|
32
|
+
|
33
|
+
$stock_cosmetic->user_id = Auth::id();
|
34
|
+
|
35
|
+
$path = $request->image->storePubliclyAs('/task', $stock_cosmetic->id . '.jpg', ['disk' => 's3']);
|
36
|
+
|
37
|
+
$stock_cosmetic->image = $path;
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
$stock_cosmetic->save();
|
42
|
+
|
43
|
+
```
|
1
htmlにしてしまっていたのをphpに修正しました。
test
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
```h
|
9
|
+
```php
|
10
10
|
|
11
11
|
<img src="{{ Storage::disk('s3')->url("task/{$stock_cosmetic->id}.jpg") }}">
|
12
12
|
|