我正在努力调用另一个模块中的组件,其中一个被调用的组件使用自己的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()
答案 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'