普通にLaravelでWebアプリケーションを作成すると基本的に「画像をDBで扱う」というシーンが出てくると思います。そんな時にネットで調べたら2つの方法が出てくると思います。
フォームを作り、画像を保存してから表示するまでを記述します。
今回フォームの部分は同じものとして仮定して話をしていので、以下のフォームを用意したものとします。
<form action="/post" method="POST" enctype="multipart/form-data" class="post_form">
<div class="form-group">
<label for="exampleFormControlFile1">ファイル</label>
<input type="file" name="image" class="form-control-file" id="exampleFormControlFile1">
</div>
<div class="form-group">
<label for="exampleFormControlTextarea1">キャプション</label>
<textarea class="form-control" name="comment" id="exampleFormControlTextarea1" rows="3"></textarea>
</div>
{{ csrf_field() }}
<button type="submit" class="btn btn-primary">Submit</button>
</form>
Laraveではこれが主流のように思われます。
Controller作業
//画像ファイルが生成される&pathにフォルダのパスが記述される
$path = $request->file->store('public');
//$pathの値をDBに入れる
Model::insert([
"comment" => $comment,
"image" => $path
]);
コマンド編 コマンドラインで下記を実行 php artisan storage:link
View編 表示したい部分で下記のように記述
<img src="{{ asset('storage/' . $filename) }}">
以上。