仅在 yii2 中的 Lgin 之后包含一个组件

问题描述

所以我尝试在 Yii2 Basic 中使用 Admin Lte 包。我已经在网上学习了一些关于如何安装它的教程。安装后看起来很棒,但我遇到了问题。 我的问题是,我希望这个新视图只有在用户通过其他身份验证时才能工作,它应该遵循认的 Yii2 应用程序。 我如何在 web.PHP 中设置此条件,或者是否有其他出路,我想知道。

Config/web.PHP 
    'view' => [
        'theme' => [
            'pathMap' => [
                '@app/views' => '@vendor/dmstr/yii2-adminlte-asset/example-views/yiisoft/yii2-app'
            ],],

解决方法

作为一个想法,您可以创建 2 个入口点:

  • Widget _buildHH(){ return Theme( data: Theme.of(context).copyWith(primaryColor: Colors.orange),child: Expanded( child: TextFormField( maxLength: 2,cursorColor: Colors.orange,style: TextStyle(color: Colors.orange),decoration: InputDecoration( border: OutlineInputBorder(),labelText: 'HH' ),onEditingComplete: () => FocusScope.of(context).nextFocus(),keyboardType: TextInputType.number,validator: (String value){ return null; },onSaved: (String value){ _HH = value; },),) ); } (我们称之为@app/web/index.php
  • main(我们称之为@app/web/adminlte.php

adminlte 将包含自己的配置文件(其中没有管理实现)。
index.php 将连接其配置文件(其中具有管理实现)。 两个入口点都会触发 adminlte.php 来运行 Yii 应用程序。

在 Web 服务器端配置 URL 拆分。 例如:

  • Application::run() --> example.com
  • index.php --> cp.example.com

  • adminlte.php --> example.com/cp/
  • adminlte.php --> example.com 或以您喜欢的其他方式。

另外,添加从一个应用程序到另一个应用程序的重定向: 如果用户打开基于 index.php 的 URL 并且他没有被授权,则将他重定向到 adminlte。 如果用户打开基于 main 的 URL 并且他已获得授权,则将他重定向到 main

因此,您将获得 2 个入口点(2 个独立的 Yii 应用程序)。 但与此同时,他们将能够使用相同的数据库和相同的代码库(模型、身份验证等)毫无问题地工作。