14DBに登録されたメモを画面に表示する
ここまででDBから値を取得しブレードに送信するところまでを実装してきました。
続いて、受け取ったDBの情報を画面に表示させてみましょう。
home.blade.phpのmemo_showクラスの部分を以下のように書き換えてください。
<div class="memo_show">
@foreach($memo_info as $memo)
<div class="memo_item">
<div class="memo_title">
<time>{{$memo->created_at}}</time>
<p>{{$memo->content}}</p>
</div>
<div class="btn_area">
<div class="edit_form">
<form action="">
<input type="submit" value="編集">
</form>
</div>
<div class="del_area">
<form action="">
<input type="submit" value="削除">
</form>
</div>
</div>
</div>
@endforeach
</div>ブレード内ではたくさんのテンプレートエンジンという便利な機能が用意されています。
HTML内でPHPのforeachを記述しようとすると、<?php foreach() ?>となります。
しかし、bladeテンプレートエンジンを用いると@foreach()と記述するだけで<?php foreach() ?>と同じ意味になります。よく使われるメソッド等についてはあらかじめLaravel側が簡単に記述できるようにテンプレートを用意してくれています。
では続きの解説をします。
{{$memo->content}}この部分ですが、まず{{ }}このかっこは前に紹介した通り<?php echo ?>の省略形で、PHPを出力することができます。
つまり$memo->contentを出力しています。$memoに格納されているデータを確認しましょう。
home.blade.php
@foreach($memo_info as $memo)
<?php dd($memo); ?> // 追加
<div class="memo_item">
<div class="memo_title">
<time>{{$memo->created_at}}</time>
<p>{{$memo->content}}</p>
</div>dd($memo);を追加し、画面を読み込んでみましょう。

すると上記の画像のように表示されたはずです。
つまり$memoの中にはメモの情報である「id」「content」「created_at」「update_at」が含まれています。
ここで、contentの”サンプルテキスト”を取り出したい場合は、$memo→contentと記述します。
なので{{ $memo→content }}の部分はサンプルテキストを出力しているという意味になります。
同じように{{ $memo→created_at }}ではcreated_atに格納されている時間のデータを取得することができます。
これで無事にメモを追加して表示させる部分までを実装することができました。
試しにメモを追加してみましょう!

無事に追加されていますね。
ではこの調子で削除、編集機能も実装していきましょう。
コメントを残す