если свойство объекта является другим объектом, как мне получить доступ к свойству или методу этого свойства объекта в smarty? - PullRequest
1 голос
/ 11 марта 2010
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}

OR

{$a->objB->title}

Пожалуйста, сообщите.

1 Ответ

1 голос
/ 11 марта 2010

Я не думаю, что smarty поддерживает эту операцию, у меня была та же проблема, и я решил ее следующим образом

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

Немного длинный и грязный, но все же решение.

Другим решением может быть назначение заголовка на стороне php (но все тот же длинный и грязный код)

Или, может быть, вы можете определить умную функцию, которая делает это за вас все время, вам нужно,

...