The current plugin and prefix persist
If you do the following:
$this->requestAction(array(
'controller' => 'x',
'action' => 'y'
));
And the current request is in your app, you're requesting the equivalent of the url:
/x/y
If you are in your foo plugin, the same code is the equivalent of the url:
/foo/x/y
To always request something from your app, define with a falsey value the key 'plugin':
$this->requestAction(array(
'controller' => 'x',
'action' => 'y',
'plugin' => false
));
OR use a string url.
You're doing something odd
CakePHP complains that LanguageController (which is called with a requestAction from my layout file)
It's not normal to use requestAction like that - you should send information to the view (meaning the view layer - the view class, view files, layouts, elements, helpers). You don't ask for information in the view. Writing code like that is a recipe for problems. For example if the language controller throws an exception - all urls will be an error.