FuelPHP HMVC请求得到重定向。如何停止重定向?

FuelPHP HMVC请求得到重定向。如何停止重定向?,php,fuelphp,Php,Fuelphp,我被跟踪并在detect\u language方法的顶部插入自定义语言url重定向 当像这样请求url时,这些语言url重定向正在工作 http://localhost -> http://localhost/en http://localhost/page -> http://localhost/en/page 现在,在我的控制器里。我使用HMVC请求小部件方法 $hmvc = \Request::forge('TestFuelphp/widget', false)->

我被跟踪并在detect\u language方法的顶部插入自定义语言url重定向

当像这样请求url时,这些语言url重定向正在工作

http://localhost -> http://localhost/en

http://localhost/page -> http://localhost/en/page

现在,在我的控制器里。我使用HMVC请求小部件方法

$hmvc = \Request::forge('TestFuelphp/widget', false)->execute();
echo $hmvc;
FuelPHP在没有语言url重定向的情况下工作正常,但在打开语言url重定向时出现错误“未正确重定向”

如果我像这样使用HMVC请求,一切正常

$hmvc = \Request::forge('en/TestFuelphp/widget', false)->execute();
echo $hmvc;
如何在HMVC请求中停止重定向


源代码
类控制器\u TestFuelphp扩展\Controller
{
公共职能行动请求InControl智能驭享应用程序()
{
回显“类:”。\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
“方法:”。“函数”。
' .“文件:”。\uuuu文件\uuuuu; 回声“
”; echo“获取函数参数:
”; $args=func_get_args(); 打印费用($args); 回声'; 回声“
”; echo“请求的hmvc”; //$hmvc=\Request::forge('test-fuelphp/widget',false)->execute(); $hmvc=\Request::forge('TestFuelphp/widget')->execute();//与上述结果相同。 echo$hmvc; } 公共函数操作_widget() { 如果(!\Request::is_hmvc()){ echo“这不是hmvc请求”; }否则{ 回显“类:”。\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu “方法:”。“函数”。
' .“文件:”。\uuuu文件\uuuuu; 回声“
”; echo“获取函数参数:
”; $args=func_get_args(); 打印费用($args); 回声'; } } }

fuel/app/classes/controller/testfuelphp.php

i18n解决方案修改Uri类。每个请求都将创建自己的Uri实例,以处理传递给它的Uri。这意味着它还将通过HMVC请求的“检测语言”位

这个解决方案不是很好,而且(正如您所注意到的)不适用于HMVC请求

如果需要这种类型的解决方案,最好重载Input::uri()。调用父级以确定URI,返回时检查第一个段,设置区域设置并删除它(如果存在)

class Controller_TestFuelphp extends \Controller
{
    public function action_requestInControllerInApp() 
        {
            echo 'class: ' . __CLASS__ . '<br>'
                . 'method: ' . __FUNCTION__ . '<br>'
                . 'file: ' . __FILE__;
            echo '<hr />';
            echo 'get function arguments:<br /><pre>';

            $args = func_get_args();

            print_r($args);
            echo '</pre>';
            echo '<hr />';
            echo '<h2>Requested hmvc</h2>';

            // $hmvc = \Request::forge('test-fuelphp/widget', false)->execute();
            $hmvc = \Request::forge('TestFuelphp/widget')->execute(); // same result as above.

            echo $hmvc;
        }

    public function action_widget() 
    {
            if (!\Request::is_hmvc()) {
                echo 'This is not hmvc request.';
            } else {
                echo 'class: ' . __CLASS__ . '<br>'
                    . 'method: ' . __FUNCTION__ . '<br>'
                    . 'file: ' . __FILE__;
                echo '<hr />';
                echo 'get function arguments:<br /><pre>';

                $args = func_get_args();

                print_r($args);
                echo '</pre>';
            }
    }
}