3

別のフィールド「場所」を追加して、以下のPHPTALテンプレートを変更する必要があります

  <tal:block tal:repeat="contact Model/contactList">
    <div class="contactCell">
      Name: <span content="contact/name">contact name</span><br/>
      Number: <span content="contacy/number">2374687234</span><br/>

      <-- THIS NEEDS ADDING-->
      Location: <span content="contact/location">contact's location</span>

    </div>
  </tal:block>

私の問題は、モデルで使用できるメソッドとプロパティがわからないことと、これをトレースするためにPHPコードを読みたくないことです。テンプレート内からモデルのすべてのプロパティをダンプできるようにしたいので、必要なプロパティがすでに利用可能かどうか、またはバックエンド開発者に利用可能にするよう依頼する必要があるかどうかを簡単に確認できます。このようなものがいいでしょう。

<div class="debug panel">
  <tal:dumpObject Model/contactList>
</div>

これにより、HTML出力で次のようなものが生成されます。

<div class="debug panel">
  contact Array
  [
    {
      [name] => John Smith
      [number] => 374862378
      [address] => 22 Acacia Avenue
      [location] => London
    },{
      [name] => Billy Bragg
      [number] => 384567365
      [address] => 10 Downing Street
      [location] => London
    },
    ...
  ]
</div>

このようにして、自分が使用できるものと、他の開発者に要求する必要があるものをすぐに確認できます。

4

2 に答える 2

3

あなたはかなり遠くまで行くことができます:

<pre tal:content="php:print_r(object, true)"/>

オブジェクトがプレーン配列またはstdClassオブジェクトの場合。

ただし、PHPTALはオブジェクトのメソッドを読み取り、マジック__get()メソッドを呼び出すこともできるため、オブジェクトがいくつかの凝ったORMからのものである場合、機能するすべてのプロパティを一覧表示できない場合があります。

于 2012-10-12T22:30:45.623 に答える