yii2 - 是否可以检查用户是否登录了嵌入 yii2 的 php 脚本?
问题描述
我在主 yii2 安装目录中放置了一个自定义脚本,如果用户登录到主 yii2 应用程序(称为前端),我需要在此脚本中知道。我使用此代码
require __DIR__ . '/../vendor/yiisoft/yii2/Yii.php';
$yiiConfig = require __DIR__ . '/../config/yii/web.php';
new yii\web\Application($yiiConfig); // Do NOT call run() here
来自: https ://www.yiiframework.com/doc/guide/2.0/en/tutorial-yii-integration#using-yii-in-others
并使用此代码
Yii::$app->user->identity->id;
但它会抛出 app 变量不可用。我尝试了其他组合,但没有任何效果。
解决方案
您需要做的就是将 的实例存储yii\web\Application
在某个变量中。然后您可以使用该变量而不是Yii::$app
.
require __DIR__ . '/../vendor/yiisoft/yii2/Yii.php';
$yiiConfig = require __DIR__ . '/../config/yii/web.php';
$app = new yii\web\Application($yiiConfig); // Do NOT call run() here
echo $app->user->identity->id;
顺便说一句,Yii::$app
设置在yii\base\Application::__construct
. Yii::$app
即使您不调用run()
方法也应该可以使用。您的问题可能有更深层次的原因。
推荐阅读
- python - 尝试从文本文件中对列进行排序
- java - java - 在输入int,char和int时如何避免Java中的InputMismatchException
- laravel - 如何从laravel中的url中删除id
- reactjs - 尝试附加图像时出现 CORS 错误
- r - Reddit 抓取错误 HTTP 状态为“403 Forbidden”
- python - 在 python Pandas 中将对象转换为时间
- node.js - 这个包已被弃用,现在它只导出 makeExecutableSchema
- function - Kivy 多个切换按钮都在一个函数中读取
- javascript - 如何提交我的文本框值以转到 React js 中的链接?
- java - 如何在 Firebase Firestore 中获取随机文档