首页 > 解决方案 > 是否可以检查用户是否登录了嵌入 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 变量不可用。我尝试了其他组合,但没有任何效果。

标签: yii2

解决方案


您需要做的就是将 的实例存储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()方法也应该可以使用。您的问题可能有更深层次的原因。


推荐阅读