質問編集履歴
3
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
##icon画像を保存したいのですが、DBにはファイル名が保存されるものの、画像そのものがstorage/public/imagesへ保存されません。
|
2
2
|
|
3
|
-
*** 解決済 解決した内容はページ最後に追記します。(2020/2/18)**
|
3
|
+
*** 解決済 * 解決した内容はページ最後に追記します。(2020/2/18)**
|
4
|
+
※ 回答者様のアドバイスを受けて、DBのimageカラムへは画像のファイル名ではなく自動で生成される文字列で表示する方法を取ることにしました。
|
4
5
|
|
5
6
|
###* コード
|
6
7
|
|
@@ -209,13 +210,15 @@
|
|
209
210
|
```
|
210
211
|
protected function create(array $data)
|
211
212
|
{
|
212
|
-
|
213
|
+
|
213
|
-
$path = $data['image']->
|
214
|
+
$path = $data['image']->store('public/image');
|
214
215
|
|
215
216
|
$user = User::create([
|
216
217
|
'name' => $data['name'],
|
217
218
|
'profile' => $data['profile'],
|
218
|
-
'image' =>
|
219
|
+
'image' => $path,
|
220
|
+
// 'image' => basename($path),←ファイル名を保存すると名前がかぶった時に上書きされてしまう。
|
221
|
+
// 'image' => $data['image'], ←'tmp_name'が保存されてしまう。
|
219
222
|
'email' => $data['email'],
|
220
223
|
'password' => Hash::make($data['password']),
|
221
224
|
]);
|
@@ -244,4 +247,19 @@
|
|
244
247
|
<!-- 省略 -->
|
245
248
|
</form>
|
246
249
|
<!-- 省略 -->
|
250
|
+
```
|
251
|
+
> 4. view/user/show.blade.php
|
252
|
+
|
253
|
+
表示させる部分 <img src=**"{{Storage::url($user->image)}}"** alt="画像だよ" class="img-icon">
|
254
|
+
```
|
255
|
+
<tr class="row">
|
256
|
+
<th class="col-4">icon</th>
|
257
|
+
<td class="col-6">
|
258
|
+
<div class="box-img">
|
259
|
+
<img src="{{Storage::url($user->image)}}" alt="画像だよ" class="img-icon">
|
260
|
+
{{-- <!-- <img src="../storage/image/{{$user->image}}" alt="画像だよ" class="img-icon"> --> --}}
|
261
|
+
{{-- <!-- <img src="/storage/{{$user->image}}" alt="画像だよ" class="img-icon"> -->--}}
|
262
|
+
</div>
|
263
|
+
</td>
|
264
|
+
</tr>
|
247
265
|
```
|
2
解決した内容を目立たせた
title
CHANGED
File without changes
|
body
CHANGED
@@ -202,7 +202,7 @@
|
|
202
202
|
**どのような手順で問題を解決すれば良いかなどアドバイスや、回答をいただけますと幸いです。**
|
203
203
|
**何卒よろしくお願いいたします。**
|
204
204
|
|
205
|
-
## ★ 解決できた記述(変更箇所のみ)
|
205
|
+
## ★★★ 解決できた記述(変更箇所のみ)
|
206
206
|
|
207
207
|
> 1. RegisterController.phpの記述
|
208
208
|
|
1
解決方法を記述しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
##icon画像を保存したいのですが、DBにはファイル名が保存されるものの、画像そのものがstorage/public/imagesへ保存されません。
|
2
2
|
|
3
|
+
*** 解決済 解決した内容はページ最後に追記します。(2020/2/18)**
|
4
|
+
|
3
5
|
###* コード
|
4
6
|
|
5
7
|
** 1. Auth/RegisterController.php**【Controller】
|
@@ -159,9 +161,9 @@
|
|
159
161
|
@csrf
|
160
162
|
<!-- 省略 -->
|
161
163
|
<div class="form-group row">
|
162
|
-
<label for="
|
164
|
+
<label for="image" class="col-md-4 col-form-label text-md-right">Example file input</label>
|
163
165
|
<div class="col-md-6">
|
164
|
-
<input type="file" class="form-control-file" id="
|
166
|
+
<input type="file" class="form-control-file" id="image" name="image" accept="image/png, image/jpeg">
|
165
167
|
</div>
|
166
168
|
</div>
|
167
169
|
<!-- 省略 -->
|
@@ -198,4 +200,48 @@
|
|
198
200
|
|
199
201
|
**2日間悩みに悩みましたが、どうしても画像をローカルに保存することができません。**
|
200
202
|
**どのような手順で問題を解決すれば良いかなどアドバイスや、回答をいただけますと幸いです。**
|
201
|
-
**何卒よろしくお願いいたします。**
|
203
|
+
**何卒よろしくお願いいたします。**
|
204
|
+
|
205
|
+
## ★ 解決できた記述(変更箇所のみ)
|
206
|
+
|
207
|
+
> 1. RegisterController.phpの記述
|
208
|
+
|
209
|
+
```
|
210
|
+
protected function create(array $data)
|
211
|
+
{
|
212
|
+
$file_name = $data['image']->getClientOriginalName();
|
213
|
+
$path = $data['image']->storeAs('public/image', $file_name);
|
214
|
+
|
215
|
+
$user = User::create([
|
216
|
+
'name' => $data['name'],
|
217
|
+
'profile' => $data['profile'],
|
218
|
+
'image' => basename($path),
|
219
|
+
'email' => $data['email'],
|
220
|
+
'password' => Hash::make($data['password']),
|
221
|
+
]);
|
222
|
+
|
223
|
+
return $user;
|
224
|
+
}
|
225
|
+
```
|
226
|
+
> 2. User.phpの記述
|
227
|
+
|
228
|
+
変更なし
|
229
|
+
|
230
|
+
> 3. auth/register.blade.php
|
231
|
+
|
232
|
+
```
|
233
|
+
<!-- my-iconを全てimageへ変更(カラム名と同じ) -->
|
234
|
+
<!-- 省略 -->
|
235
|
+
<form method="POST" action="{{ route('register') }}" enctype="multipart/form-data">
|
236
|
+
@csrf
|
237
|
+
<!-- 省略 -->
|
238
|
+
<div class="form-group row">
|
239
|
+
<label for="image" class="col-md-4 col-form-label text-md-right">Example file input</label>
|
240
|
+
<div class="col-md-6">
|
241
|
+
<input type="file" class="form-control-file" id="image" name="image" accept="image/png, image/jpeg">
|
242
|
+
</div>
|
243
|
+
</div>
|
244
|
+
<!-- 省略 -->
|
245
|
+
</form>
|
246
|
+
<!-- 省略 -->
|
247
|
+
```
|