Laravelを1から勉強しており、foreachの基本的な使い方を忘れないために備忘録です。
間違っていることがありましたらご指摘ください。
画像のような本を管理するアプリに例えて考えていきます。
booksテーブルには以下のようなカラムが作成されていることとします。
booksテーブルにあるカラムの一部抜粋
id
book_name
created_at
bookコントローラーには以下のようにindex関数が定義されていることとします。
BookController
class BookController extends Controller
{
public function index()
{
// DBよりBookテーブルの値を全て取得
$books = Book::all();
// 取得した値をビュー「book/index」に渡す
return view('book/index', compact('books'));
}
ビュー(blade)でテーブルを作成
resources/views/index.blade.php
<table class="table table-striped">
<thead>
<tr>
<th>ブックナンバー</th>
<th>ブック名</th>
<th>作成日</th>
</tr>
</thead>
<tbody>
@foreach ($books as $book)
<tr>
<td>{{ $book->id }}</td>
<td>{{ $book->book_name }}</td>
<td>{{ $book->created_at }}</td>
</tr>
@endforeach
</tbody>
</table>
このコードのポイントは、ここです。
resources/views/index.blade.php
<tbody>
@foreach ($books as $book)
<tr>
<td>{{ $book->id }}</td>
<td>{{ $book->book_name }}</td>
<td>{{ $book->created_at }}</td>
</tr>
@endforeach
</tbody>
予めコントローラーで変数$booksを定義しておいたことにより、
ビューでforeach構文を使うことで、変数$booksに渡したデータベースのデータを
1つずつ($books as $book)表示させることができるのです。
その結果、記事のTOPに添付したような表(テーブル)を作成することができるのです。
▼参考にさせていただいた記事