【问题标题】:if an object property is another object, how do i access that object-property's property or method in smarty?如果一个对象属性是另一个对象,我如何在 smarty 中访问该对象属性的属性或方法?
【发布时间】:2011-01-26 06:48:38
【问题描述】:
class A
{
  public $property1;
  public $objB;

  public __construct(){
    $this->property1 = 'test';
    $this->objB = new B();
  }
}

class B
{
  public $title;
  public __construct(){
    $this->title = 'title1';
  }

}

所以现在我在 .php 文件中执行此操作

$a = new A();

在我的 .tpl 我想显示 $a->objB->title

我该怎么做?我试过了

$smarty->assign('a', $a);

我在 smarty 中无法做到这一点

{$a->objB->title}

我也试过了

$smarty->register_object('a', $a);

我在 smarty 中无法做到这一点

{a->objB->title}

或

{$a->objB->title}

请指教。

【问题讨论】:

  • 每次我读到这些聪明的帖子,对我来说就像“我想骑自行车上楼梯到 22 楼,谁能帮忙”。那么,“让自行车站立行走”怎么样?对不起。

标签: php templates smarty variable-assignment


【解决方案1】:

我认为 smarty 不支持该操作,我遇到了同样的问题并这样解决了

{assign var='myObject' value=$a->objB}
{$myObject->title}

有点冗长和混乱,但仍然是一个解决方案。

另一种解决方案可能是在 php 端分配标题(但仍然是相同的又长又乱的代码)

或者你可以定义一个 smarty 函数,在你需要的时候为你做这件事,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-11
    • 1970-01-01
    • 2022-11-10
    相关资源
    最近更新 更多