0

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

例如

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

文件:模块/用户/操作/components.class.php

public function executeShowUsername () {
$this->userName =userActions::getUserName();
}

在组件模板 (module/user/templates/_showUsername.php) echo $userName; (工作正常)

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

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

我收到错误:

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

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

4

1 回答 1

0

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

<?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' 
于 2013-03-25T19:53:21.560 回答