首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在app()->handle()函数之后Laravel路由url的更改

问在app()->handle()函数之后Laravel路由url的更改
EN

Stack Overflow用户
提问于 2018-06-05 17:31:50
回答 1查看 2.5K关注 0票数 0

我在自己的项目中访问api,但是现在route函数出现问题了,在用app()->handle($req)发送请求之后,路由函数生成一个不同的url

代码语言:javascript
复制
   $req = Request::create('/api/auth/login', 'POST', [
        "user" => $request->user,
        "password" => $request->password,
    ]);

    $redirect = route('home'); // http://127.0.0.1:8000/home

    $res = app()->handle($req);

    $redirect = route('home'); // http://localhost/home

我错过了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-05 21:56:13

Request::create()是从Symfony的HTTP类继承的方法。调用时,如果不传递任何$_SERVER详细信息,则为它将使用合理的缺省值。。

UrlGenerator Laravel类在调用函数(如route() )时使用当前请求来确定完全限定的域名。由于您没有告诉请求当前域是什么,所以它将恢复为localhost。

如果您所处的环境中$_SERVER填充了适当的信息,则可以将其传递给适当的参数:

代码语言:javascript
复制
Request::create(
    '/api/auth/login',
    'POST',
    [
        'user' => $request->user,
        'password' => $request->password,
    ],
    [], // cookies
    [], // files
    $_SERVER
);

其他可能适合的解决办法:

  • 使用Request::createFromGlobals()将请求填充到$_POST、$_SERVER等超级全局,然后修改要更改的部分。
  • 如果$request变量已经保存了Laravel实例,则可以调用$request->duplicate()。再一次,根据需要修改。
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50705869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档