Symfony1.2组件问题

时间:2013-03-24 03:53:59

标签: symfony1 components partial

我正在努力调用另一个模块中的组件,其中一个被调用的组件使用自己的actions :: functionname

例如

module / user / actions / actions.class.php有像getUserName()这样的函数 我在同一个模块的组件中调用userActions :: getUserName()函数,它工作正常,即

file:module / user / actions / components.class.php

public function executeShowUsername () {
$this->userName =userActions::getUserName();
}
组件模板中的

(module / user / templates / _showUsername.php) echo $ userName; (工作正常)

现在,问题是: 在其他模块中包含('user','showUserName')组件时 file:module / generate / template / indexSuccess.php

<?php include_component('user', 'showUserName'); ?>

我收到错误:

  

致命错误:第86行的/myproject/apps/frontend/modules/user/actions/components.class.php中找不到“userActions”类

我该如何解决? 如果它调用函数,我们不能在其他模块中调用组件 userActions :: getUserName()

1 个答案:

答案 0 :(得分:0)

如果您正在使用用户会话,则可以直接在布局模板中访问它(请参阅http://symfony.com/legacy/doc/gentle-introduction/1_4/en/06-Inside-the-Controller-Layer中的用户会话部分):

<?php echo $sf_user->getAttribute('nickname') ?>

否则,要将变量传递给组件(请参阅http://symfony.com/legacy/doc/gentle-introduction/1_4/en/07-Inside-the-View-Layer中的组件部分):

[从清单7-13 - 将参数传递给组件及其模板]

// Call to the component
// rather than calling userActions::getUserName() in the component.class
// put your code from userActions::getUserName() into the model (or other accessible place)
// then call the component
<?php include_component('user', 'showUserName', array('MyUserName' => 'myuser')) ?>

// In the component itself
echo $this->MyUserName;
/* results in */ => 'myuser'

// In the _show_user_name.php partial
echo $MyUserName;
/* results in */ => 'myuser'