Motomichi Works Blog

その日学習したことについて書いている日記です。誰かの役に立ったらそれはそれで嬉しいです。

cakephp2.6.1とsmarty3.1によるviewについて覚え書き

参考にさせて頂いたページ

cakeとsmartyについて参考にさせて頂いたページ

Chapter 4. 変数 | Smarty

Smarty :: View topic - Using counter to access array elements?

CakePHP用のSmartyプラグイン - basuke の日記

cakePHPでSmartyを利用する方法 その2 - かけだしエンジニアの独り言

CakePHP renderElementで使い回す | BW-LOG

Smarty と cakePHP 適当メモ ← Neo Inspiration

OBORO: cakephpでsmarty 別のテンプレートをインクルードする

CakePHP viewにelementを埋め込む | Into my web

Smartyで配列のダンプを表示させる5つの方法 [C!]

Smartyについて参考にさせて頂いたページ

PHP Template Engine | Smarty

smartyテンプレートの変数で文字列を連結する - 作業ノート

以下にまとめる

コメント

{* コメント *}

変数への値の代入と出力

2.xの書き方

{assign var="example" value="文字列とか"}
{$example}

3.xの書き方

{$example="文字列とか"}
{$example}

配列への値の代入と出力

2.xの書き方

{assign var="myArray" value=array(10,20,30)}
{$myArray[0]}
{$myArray[1]}
{$myArray[2]}

3.xの書き方

{$myArray=[10,20,30]}
{$myArray[0]}
{$myArray[1]}
{$myArray[2]}

Elementsの呼出し (変数を渡さなくても良い場合)

{$view->element("StyleguideTables/styleguide_header")}

Elementsの呼出し (変数$exampleをElementsの中で使いたい場合)

{$view->element("StyleguideTables/styleguide_header",["example"=>"文字列"])}

配列$myArray[0]などをElementsの中で使いたい場合

{$view->element(
  "StyleguideTables/styleguide_header",
  ["myArray"=>
    [
      10,
      20,
      30
    ]
  ]
)}

連想配列$myArray['first']などをElementsの中で使いたい場合

{$view->element(
  "StyleguideTables/styleguide_header",
  ["myArray"=>
    [
      "first" => "hoge",
      "second" => "fuga",
      "third" => "foo"
    ]
  ]
)}

include

参考:OBORO: cakephpでsmarty 別のテンプレートをインクルードする

{include file="example.tpl"}

{include file="example.tpl" title="文字列"}

{include file="example.tpl" title=$title}

みたいな感じなのかな?まだ試していないのでまた検証できたら書く。

連想配列の値設定とforeach (連想配列キーが不要な場合)

2.xの書き方

{assign var="myArray" value=[
  "first" => "hoge",
  "second" => "fuga",
  "third" => "foo"
]}

{foreach from=$myArray item=example}
    <div>{$example}</div>
{foreachelse}
    <div>データがありません。</div>
{/foreach}

3.xの書き方

{foreach $myArray as $example}
    <div>{$keyString} : {$example}</div>
{foreachelse}
    <div>データがありません。</div>
{/foreach}

連想配列の値設定とforeach (連想配列キーも取得したい場合)

2.xの書き方

{assign var="myArray" value=[
  "first" => "hoge",
  "second" => "fuga",
  "third" => "foo"
]}

{foreach from=$myArray key=keyString item=example}
    <div>{$keyString} : {$example}</div>
{foreachelse}
    <div>データがありません。</div>
{/foreach}

3.xの書き方

{foreach $myArray as $keyString => $example}
    <div>{$keyString} : {$example}</div>
{foreachelse}
    <div>データがありません。</div>
{/foreach}

配列の中身を確認する

参考:Smartyで配列のダンプを表示させる5つの方法 [C!]

<pre>
{$myArray|@var_dump}
</pre>


<pre>
{$myArray|print_r}
</pre>

文字列の入っている変数を連結する(変数$exampleに連結した文字列を入れる)

まず変数もプレーンな文字列も含めてダブルダブルクォートで囲み、変数はさらにバッククォートで囲む。

連想配列や配列も同様。

cat修飾子を使う方法もあるとのこと。

2.xの書き方

{assign var='example' value="`$smarty.server.PHP_SELF`文字列`$foo`"}

3.xの書き方

{$example=="`$smarty.server.PHP_SELF`文字列`$foo`"}