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($this->title) ?> <?php $this->head() ?> class="layui-layout-body"> <?php $this->beginBody() ?><?php $this->endBody() ?> <?php $this->endPage() ?>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">
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"> layuiAdminclass="layui-nav layui-nav-tree" lay-shrink="all" id="LAY-system-side-menu" lay-filter="layadmin-system-side-menu">
- class="layui-nav-item layui-nav-itemed"> class="layui-icon layui-icon-home"> 主页 <dl class="layui-nav-child">
- class="layui-this"> 控制台
- 主页一
dl>class="layui-body" id="LAY_app_body">class="layadmin-tabsbody-item layui-show"> <?= $content ?>class="layadmin-body-shade" layadmin-event="shade">
此时登陆成功后,显示出整个页面了
接下来,加用户登陆认证添加上去
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($this->title) ?> <?php $this->head() ?> class="layui-layout-body"> <?php $this->beginBody() ?><?php $this->endBody() ?> <?php $this->endPage() ?>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-nav layui-nav-tree" lay-shrink="all" id="LAY-system-side-menu" lay-filter="layadmin-system-side-menu"> <?php foreach ($leftMenuList as $row_menu): ?>
- class="layui-nav-item layui-nav-itemed"> $row_menu['label'];?>" lay-direction="2"> class="layui-icon layui-icon-home"> <?= $row_menu['label'];?> <dl class="layui-nav-child"> <?php foreach ($row_menu['items'] as $child_menu): ?>
<?php endforeach;?>- $child_menu['url'];?>"><?= $child_menu['label'];?>
<?php endforeach;?> dl>class="layui-body" id="LAY_app_body">class="layadmin-tabsbody-item layui-show"> <?= $content ?>class="layadmin-body-shade" layadmin-event="shade">
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">