【问题标题】:PHPTAL: how to dump an object to see all propertiesPHPTAL:如何转储对象以查看所有属性
【发布时间】:2012-10-11 09:59:56
【问题描述】:

我必须通过添加另一个字段“位置”来修改下面的 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>

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

【问题讨论】:

    标签: template-tal phptal


    【解决方案1】:

    你可以走得很远:

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

    如果对象是普通数组或stdClass 对象。

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

    【讨论】:

    • 抱歉耽搁了这么久 - 不敢相信我忽略了这么久。谢谢:)
    【解决方案2】:

    您也可以在 PHPTAL 中使用 var_dump:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-30
      • 1970-01-01
      • 2017-09-13
      • 1970-01-01
      • 2021-12-27
      相关资源
      最近更新 更多