我正在编写一个从浏览器运行的应用程序.但是,也可以从Yii2控制台调用某些模型函数.因此,我在尝试访问GUI中设置的变量时遇到错误.
是否有可能分辨出我在哪种模式?是否有一些环境变量自动设置,或者我应该在控制台应用程序中设置一些会话变量来指示状态?
小智 19
正确的变种
Yii::$app->request->isConsoleRequest
Run Code Online (Sandbox Code Playgroud)
小智 18
您可以使用
if (Yii::$app instanceof \yii\console\Application)
Run Code Online (Sandbox Code Playgroud)
对于控制台,和
if (Yii::$app instanceof \yii\web\Application)
Run Code Online (Sandbox Code Playgroud)
对于网络.
Yii有一种更简单的方法可以在不遍历对象的情况下解决这个问题
if (php_sapi_name() == "cli") {
return;
}
Run Code Online (Sandbox Code Playgroud)
...它适用于所有 PHP 脚本 ...而且它更轻