Frameworks 在Yii框架中如何在一个页面上使用多个控制器方法?

Frameworks 在Yii框架中如何在一个页面上使用多个控制器方法?,frameworks,yii,Frameworks,Yii,我想知道如何在只访问一个控制器的情况下呈现多个控制器方法(在Yii框架中)。例如,在浏览器中调用“controller/SiteController.php”(方法“actionIndex”) Witch首先呈现“controller/UserController.php”(方法“actionDetails”->“views/user/details.php”)的输出 之后,还将为页面的其余部分呈现“controller/SiteController.php”(方法“actionIndex”-

我想知道如何在只访问一个控制器的情况下呈现多个控制器方法(在Yii框架中)。例如,在浏览器中调用“controller/SiteController.php”(方法“actionIndex”)

  • Witch首先呈现“controller/UserController.php”(方法“actionDetails”->“views/user/details.php”)的输出
  • 之后,还将为页面的其余部分呈现“controller/SiteController.php”(方法“actionIndex”->“views/site/index.php”)的输出

希望有人能帮忙?我对Yii还是有点陌生。提前感谢。

这是可以做到的,毕竟动作也是一种功能,不是吗..所以我们可以称之为

在渲染后的第一个操作中..创建所需控制器的实例,在您的示例SiteController中,调用其成员函数,在您的示例中
actionIndex()


理想情况下,作为一个mvc实践,您不应该这样做,而是从页面中发出单独的ajax请求,以从单独的操作中获取内容。

谢谢您的回复,我现在正在尝试,但我似乎无法调用与我当前使用的控制器不同的控制器:“include(SiteController.php):无法打开流:没有这样的文件或目录”。运行“index.php/user/details”时。你知道我做错了什么吗?非常感谢,那是丢失的环节。关于您建议的ajax请求,有一个问题:这不会使它从客户端浏览器请求多个url吗?你有这样一个例子吗?是的。这将是来自浏览器的多个请求。以facebook为例。你认为当你打开facebook.com时,它会加载所有的数据吗???不..它呈现一个包含大多数必需内容的页面,并通过ajax调用加载其余的d内容。。
Yii::import('application.controllers.SiteController');
$controller_instance = new SiteController("Site"); //string $id, CWebModule $module=NULL
$controller_instance->actionIndex();