首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >正在将PHP应用程序迁移到Laravel。Laravel中的$_SESSION数据集在旧的应用程序php文件中不可用

正在将PHP应用程序迁移到Laravel。Laravel中的$_SESSION数据集在旧的应用程序php文件中不可用
EN

Stack Overflow用户
提问于 2018-06-01 21:55:42
回答 1查看 175关注 0票数 -1

我正在将一个用PHP编写的应用程序迁移到Laravel。我还不能将功能从PHP文件中移出,所以我将它们放在/public目录中,一切都很好。然而,旧的应用程序在用户登录时设置了$_SESSION["userId"],并且在大多数文件中都会引用它来识别当前用户。

我知道Laravel的会话不是原生PHP会话。我已经将session_start()添加到我的app.php文件中,并在用户登录时设置$_SESSION["userId"],但旧应用程序文件中的$_SESSION["userId"]始终为undefined

我觉得有一块拼图我还没找到,但我还是弄不明白。我使用的是全新的Laravel 5.6安装。

用于澄清的编辑

旧的应用程序由许多PHP文件组成,每个文件echoing JSON数据,这些数据通过ajax请求调用。我只是将它们放在public目录中,并且在我们的Angular前端中的旧URL没有任何更改。

Angular应用程序通过index.blade.php提供服务,控制器在返回视图之前调用session_start()并设置$_SESSION["userId"]变量。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-02 03:45:20

这是我最终实现的一个简化版本。它需要对执行所有ajax请求的URL进行更改。

web.php

代码语言:javascript
复制
Route::post('old/{filename}', 'OldController@post');

OldController.php

代码语言:javascript
复制
public function post(Request $request, $filename)
{
    if (session_id() == "") {
        session_start();
    }

    if (Auth::check()) {
        $_SESSION['userId'] = Auth::user()->userId;
    }

    $filePath = realpath(app_path() . '/../response/' . $filename);
    include $filePath; 
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50645039

复制
相关文章

相似问题

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