Accessing a module's action rendered output


I’m writing an “Account” module which should take care of everything about accounts: registration, login/logout, user administration, password recovery, account activation, etc.

So I thought it would be best to reuse whatever the module’s DefaultController::actionRegister() generates to show on the main page.

So my question is: how to create a new "sub request" (similar to CController::forward()) from any controller (either SiteController, read: from views/layouts/main.php, or another controller, eventually of another submodule) to a given module/controller/action?

I’ve tried with $this->forward() from within my application layout without success: it shows a blank page, no error whatsoever.


Are you using latest Yii version from svn? Because CController::forward() was changed recently so that the application exits after the forward call. You can use forward($route, false) so that the application doesn’t exit after the call.

No, I’m using yii-1.1.0.r1700. And even so, as I said all I get is a blank page, even though I’m calling forward() inside my main application’s layout (at a point where IF something would crash or return/stop execution, I’d still have SOME output).

And when I say “blank” I mean the HTTP response body, not what I can see drawn in the canvas. It’s like it’d die of endless recursion or something, purely on how it behaves.