Yii2与layuiadmin整合2


17.建立模板文件 /modules/users/views/user/create.php
添加以下内容

<?php
use yii\widgets\ActiveForm;
?>
class="layui-form" lay-filter="layuiadmin-form-admin" id="layuiadmin-form-admin"> <?php $form = ActiveForm::begin();?>
class="layui-form-item"> <?= $form->field($model, 'username') ->textInput(['type' => 'text', 'lay-verify' => 'required','class' => 'layui-input','placeholder' => '用户名']) ->label('用户名'); ?>
class="layui-form-item"> <?= $form->field($model, 'password') ->textInput(['type' => 'password','id' => 'LAY-user-login-password', 'lay-verify' => 'required','class' => 'layui-input','placeholder' => '密码']) ->label('密码'); ?>
class="layui-form-item">
<?php ActiveForm::end();?>

此时访问  http://yii2web.com/users/user/create 添加对应的用户信息

18.修改 /controllers/SiteController.php中的方法

  // 
    public function actionLogin()
    {
        $this->layout='empty';
        if (!Yii::$app->user->isGuest) {
            return $this->goHome();
        }

        $model = new LoginForm();
        if ($model->load(Yii::$app->request->post()) && $model->login()) {
            return $this->goBack();
        }

        $model->password = '';

        return $this->render('login', [
            'model' => $model,
        ]);


    }

19.修改公共模板  /views/layouts/main.php

<?php
use yii\helpers\Html;
use \yii\helpers\Url;
use app\assets\LayuiAsset;

LayuiAsset::register($this);
?>
<?php $this->beginPage() ?>

$app->language ?>">

    $app->charset ?>">
    
    
    <?= Html::csrfMetaTags() ?>
    <?= Html::encode(<span style="color: rgba(128, 0, 128, 1)">$this</span>->title) ?>
    <?php $this->head() ?>

class="layui-layout-body">
<?php $this->beginBody() ?>
class="layui-layout layui-layout-admin">
class="layui-header">
    class="layui-nav layui-layout-right" lay-filter="layadmin-layout-right">
  • class="layui-nav-item" lay-unselect> 贤心 <dl class="layui-nav-child">
    基本资料
    修改密码

    <?php echo Html::beginForm(['/site/logout'], 'post', ['class' => 'form-inline']); echo Html::submitButton( '退出 (' . Yii::$app->user->identity->username . ')'); echo Html::endForm(); ?> dl>
class="layui-side layui-side-menu">
class="layui-side-scroll">
class="layui-logo" lay-href="home/console.html"> layuiAdmin
class="layui-body" id="LAY_app_body">
class="layadmin-tabsbody-item layui-show"> <?= $content ?>
class="layadmin-body-shade" layadmin-event="shade">
<?php $this->endBody() ?> <?php $this->endPage() ?>

此时登陆成功后,显示出整个页面了
接下来,加用户登陆认证添加上去

20.运行 http://yii2web.com/gii/controller
生成

// Controller Class
app\controllers\BaseController

21. 修改文件 /controllers/BaseController.php

<?php

namespace app\controllers;

use Yii;
use yii\web\Controller;

class BaseController extends Controller
{
    public $layout = '@app/views/layouts/main';
    public $topMenu = [];
    public $leftMenu = [];
    // 无用权限控制的路由
    public $routeWhiteList = [
      'site/login',
      'site/error',
      'site/logout'
    ];

    public function beforeAction($action)
    {
        if(Yii::$app->user->isGuest && !in_array($this->route,$this->routeWhiteList)) {
            $this->redirect(['site/login']);
        }
        return parent::beforeAction($action);
    }
}

22. 修改 /controllers/SiteController.php
让其继承上面的 BaseController

// class SiteController extends Controller
// 修改为
class SiteController extends BaseController 
{
    // 
}

此时就必须先登陆才能操作了

23.头部导航,开发头部导航,新建文件 /config/menu.php
添加以下内容

<?php
return [
        'menu' => [
            ['label' => '主页',
                'id' => 'basic',
                'items' => [
                    ['label' => '主页概览','items' => [
                       ['label' => '主页展示','url' => '/site'],
                    ]],
                ],
            ],

            ['label' => '订单管理',
                'id' => 'orders',
                'items' => [
                    ['label' => '所有订单','items' => [
                        ['label' => '所有订单列表','url' => '/orders'],
                        ['label' => '所有退货订单列表','url' => '/all_url'],
                        ['label' => '所有作废订单列表','url' => '/all_url'],
                        ['label' => '所有完成订单列表','url' => '/all_url'],
                    ]],
                    ['label' => '亚马逊订单','items' => [
                        ['label' => '亚马逊订单列表','url' => '/url1'],
                        ['label' => '亚马逊退货订单列表','url' => '/url1'],
                        ['label' => '亚马逊作废订单列表','url' => '/url1'],
                        ['label' => '亚马逊完成订单列表','url' => '/url1'],
                    ]],
                    ['label' => '沃尔玛订单','items' => [
                        ['label' => '沃尔玛订单列表','url' => '/url1'],
                        ['label' => '沃尔玛退货订单列表','url' => '/url1'],
                        ['label' => '沃尔玛作废订单列表','url' => '/url1'],
                        ['label' => '沃尔玛完成订单列表','url' => '/url1'],
                    ]],
                ]],

            ['label' => '系统管理',
                'id' => 'system',
                'items' => [
                    ['label' => '权限管理','items' => [
                        ['label' => '角色管理','url' => '/system/role'],
                        ['label' => '权限列表','url' => '/system/permission'],
                        ['label' => '用户权限管理','url' => '/system/userPermission'],
                    ]],

                ]],
            ['label' => '用户管理',
                'id' => 'users',
                'items' => [
                    ['label' => '用户管理','items' => [
                        ['label' => '用户列表','url' => '/users/user'],
                    ]],

                ]],

        ],
    ];

24.继续完善上面的控制器模板
修改文件 /controllers/BaseController.php

    public function beforeAction($action)
    {
        if(Yii::$app->user->isGuest && !in_array($this->route,$this->routeWhiteList)) {
            $this->redirect(['/site/login']);
        }
        $menuFilePath = Yii::getAlias('@app/config/menu.php');
        $menuConfig = require_once $menuFilePath;
        $menus = $menuConfig['menu'];
        $this->topMenu = $menus;
        foreach ($menus as $row_menu) {
            $this->leftMenu[$row_menu['id']] = $row_menu['items'];
        }
        return parent::beforeAction($action);
    }

25. 修改模板  /views/layouts/main.php,为了方便处理,精简一些内容

<?php
use yii\helpers\Html;
use \yii\helpers\Url;
use app\assets\LayuiAsset;

LayuiAsset::register($this);
?>
<?php $this->beginPage() ?>

$app->language ?>">

    $app->charset ?>">
    
    
    <?= Html::csrfMetaTags() ?>
    <?= Html::encode(<span style="color: rgba(128, 0, 128, 1)">$this</span>->title) ?>
    <?php $this->head() ?>

class="layui-layout-body">
<?php $this->beginBody() ?>
class="layui-layout layui-layout-admin">
class="layui-header">
    class="layui-nav layui-layout-left">
  • class="layui-nav-item layadmin-flexible" lay-unselect> class="layui-icon layui-icon-shrink-right" id="LAY_app_flexible">
  • <?php foreach ($this->context->topMenu as $item): $menuUrl = $item['items'][0]['items'][0]['url']; $layui_this = ''; if($this->context->module->id == $item['id']) { $layui_this = 'layui-this'; } ?>
  • class="layui-nav-item layui-hide-xs <?= $layui_this;?>" lay-unselect> <?= Html::a($item['label'],$menuUrl,[ 'data' => [ 'method' => 'post' ] ])?>
  • <?php endforeach;?>
    class="layui-nav layui-layout-right" lay-filter="layadmin-layout-right">
  • class="layui-nav-item"> <?php echo Html::beginForm(['/site/logout'], 'post', ['class' => 'form-inline']); echo Html::submitButton( '退出 (' . Yii::$app->user->identity->username . ')'); echo Html::endForm(); ?>
class="layui-side layui-side-menu">
class="layui-side-scroll">
class="layui-logo" lay-href="home/console.html"> layuiAdmin
<?php $leftMenuList = $this->context->leftMenu[$this->context->module->id]; ?>
class="layui-body" id="LAY_app_body">
class="layadmin-tabsbody-item layui-show"> <?= $content ?>
class="layadmin-body-shade" layadmin-event="shade">
<?php $this->endBody() ?> <?php $this->endPage() ?>

26.修改各个模板,统一继承 BaseController
比如订单模模块 /modules/orders/controllers/DefaultController.php

class DefaultController extends Controller
// 修改为
class DefaultController extends BaseController

27. 以下开发用户功能,建立文件 /modules/users/views/user/index.php

class="layui-fluid">
class="layui-card">
class="layui-card-header layuiadmin-card-header-auto">
class="layui-btn-group"> class="layui-btn layui-btn-sm" href="/users/user/create">添 加
class="layui-form">
class="layui-input-inline"> class="layui-input">
class="layui-input-inline"> class="layui-input">
class="layui-input-inline"> class="layui-input">
class="layui-card-body">
PHP