Google App Engine for phpの
twigのテンプレートについての続きです
今回はlist処理部分について記載します
リスト処理
処理概要
webページをつくるなら基本中の基本の処理
のlist処理です
データとしてはUser データです
('ID', 'name', '詳細', '歳')
そちらのデータを表示したいと思います
作り
カテゴリ | プログラム | 詳細 |
---|---|---|
php | listpage.php | 実行されるプログラム |
twig | base.html.twig | デザインのベースのテンプレート(リストに継承します) |
twig | listpage.html.twig | リストのテンプレートファイル |
twig | _userlistitem.html.twig | ユーザーの1行のテンプレートファイル |
ソース
listpage.php
<!--?php require_once './vendor/autoload.php'; Twig_Autoloader::register(); //テンプレートの読み込み $loader = new Twig_Loader_Filesystem("views"); $twig = new Twig_Environment($loader); $template = $twig--->loadTemplate("listpage.html.twig"); //データ $users = array( array("id" => "1","name" =>"masa","description" => "まさ、開発者です","age" => 35), array("id" => "2","name" =>"hiromi","description" => "まさのです。嫁です","age" => 33), array("id" => "10","name" =>"憲吾","description" => "まさの父です。鉄人です","age" => 66) ); $page = array( "description" => "サイトマップ作成ツール", "keywords" => "sitemap,tool", "title" => "ユーザー一覧", "users" => $users ); $template->display($page); ?>
テンプレートファイル
listpage.html.twig
{% extends 'base.html.twig' %} {% block body %} <div class="row"> <div class="col-lg-12"> {% set columnname = ['ID', 'name', '詳細', '歳', '操作'] %} {% for column in columnname %} {% endfor %} {% for user in users %} {% include "_userlistitem.html.twig" %} {% endfor %} <table class="table table-bordered"> <tbody><tr><td>{{ column }}</td></tr><!--単純にリストで表示するパターン <tr> {% for column in row %} <td>{{ column }}</td> {% endfor %} <td>><a href="/user/edit.php?id={{ user.id }}" title="{{ user.name }}"> 1編集</a></td> </tr> --></tbody></table> </div><!-- /col-lg-12 --> </div><!-- /row --> {% endblock %}
リストの1行目の
_userlistitem.html.twig
{{ user.id }} {{ user.name }} {{ user.description }} {{ user.age }} <a href="/user/edit.php?id={{ user.id }}" title="{{ user.name }}"> 1編集</a>
実行結果
それっぽくなりました
所管
・リストの1行をテンプレートにしました
これはしなくてもよかったかも・・・
・データ取得の部分は、本来はDBです
(現在、はまっていてハードコードになっています)