Laravel データベースのデータをul liでリスト化する

LaravelでHTMLのunordered listを生成する2つの方法

HTML::ul

Laravelでデータを動的にリスト化する方法です。

View側にてHTML::ul()を利用することで、動的にデータをリスト化することが出来ます。

{{ HTML::ul(['engineer', 'designer', 'architect']) }}

引数として配列を渡せばリスト表示できます。ulにclass属性を追加する場合には、引数を追加することでclassを設定可能です。

{{ HTML::ul(['engineer', 'designer', 'architect'], array('class'=>'job')) }}

引数の配列を変数として、routes.phpからViewに渡してリスト化する方法は以下の通りです。

view

{{ HTML::ul($engineers, array('class'=>'job')) }}

routes

$engineers = array(
  'engineer',
  'designer',
  'architect',
);
	
return View::make('form')->with('engineers', $engineers);

Routes.phpからリスト化したいデータを配列でViewに渡して、HTML::ul()でリスト化すること可能。

データベースのデータをリスト化

DBのデータをリスト表示するためには、$engineersの中身をデータベースから取得して配列化すればよいことになるが、Eloquent ORMで取得できるデータの構造が基本的にオブジェクト配列になっているので、HTML::ulではなく@foreachを利用することで、オブジェクト配列を動的にリスト化することが可能。

view

<ul>
@foreach ($engineers as $e)
  <li>
  {{ $e->name }}
  </li>
@endforeach
</ul>

routes

$engineers = Engineer::all();
return View::make('form')->with('engineers', $engineers);

データベースから取得したデータをリスト化する場合には、@foreachを使った方法を用いることの方が多いと思われるが、HTML::ulを使うことで、ネスト化されたunordered listを効率的に表現することができるので、合わせておぼえておきたいノウハウ。

Webエンジニアブログにコメント

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Laravel データベースのデータをul liでリスト化するの記事にコメントを投稿