*2023年5月現在*
こんにちは!laravelでの画像の追加方法について、初心者にもわかりやすく説明していきます。
laravelで画像を扱うためには、以下の手順を実行する必要があります。
1 画像を保存するためのディレクトリを作成する
まず、1つ目の手順である画像を保存するためのディレクトリを作成する方法について説明します。laravelでは、public/storageに画像を保存します。このpublic/storageディレクトリにアクセスするには、シンボリックリンクを作成する必要があります。シンボリックリンクを作成するには、以下のコマンドを実行します。
php artisan storage:link
これで、public/storageディレクトリにアクセスすることができます。
ちなみに僕はここでつまづいて二時間ほど悩みました。。。
mysqlで投稿されていることを確認するだけではダメでした!!
僕の原因はpublicディレクトリに入っていない事でした。
storageディレクトリの中では保存されても上のコードを使わないと貼り付けれませんでした。
確認してみてください!!
2 画像のアップロード機能を実装する
次に、画像のアップロード機能を実装する方法について説明します。laravelでは、フォームから送信されたファイルを受け取るために、Requestオブジェクトのfileメソッドを使用します。以下のコードをコントローラに書き込みます。
// フォームから画像が送信されてきたら、保存して、$board->image_path に画像のパスを保存する 無ければnull
if (isset($form[‘image’])) {
$path = $request->file(‘image’)->store(‘public/image’);
$board->image_path = basename($path);
} else {
$board->image_path = null;
}
これで写真をテーブルへ保存できるようになりました。
*テーブルとモデルの作成は後日*
3 画像を表示するためのコードを書く
コントローラができればhtmlに
<img src="{{ asset('storage/image/' . $post->image) }}" alt="image">
っと入力すればサイトに画像を貼り付けれるようになります
フレームワークによって画像の添付の方法が変わるのは大変ですよね
初心者が書いた記事なので間違った記載があればコメント欄より優しく教えて欲しいです
それではみなさん勉強がんばりましょう!!
コメント