2012-10-11 34 views
3

我必须通过增加另一个领域,“位置”修改下面的PHPTAL模板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> 

这样我就可以立即看到什么,我可以使用,我需要从其他开发者要求什么。

回答

3

你可以得到很远:

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

如果对象是一个普通的数组或对象stdClass

但是,PHPTAL也可以读取对象的方法并调用魔术方法,因此如果对象来自某些奇特的ORM,则可能无法列出所有可用的属性。

+0

抱歉长延时 - 不能相信我忽略了这么久。谢谢 :) – Xoundboy

0

你可以在里面PHPTAL用var_dump还有:

<pre tal:content="php:var_dump(object)"/>