yii2实战之用户注册登录全局函数url美化用户的注册登录小结

控制器与视图交互,本篇将讲解如何自定义全局函数,以及使用yii自带的用户注册登录功能

全局函数

有时候我们希望自定义一些函数,可以在全局中调用,如php默认的var_dump在页面上的显示效果并不好,尤其是多层级数组的情况下,一大坨数据很难分辨。对此,yii提供了VarDumper助手,可以输出美观易读的信息,只是调用较为繁琐,为了开发的体验更流畅,可以自定义全局函数,将常用的功能封装,便于调用。

首先,新建common/functions.php

<?php
use yii\helpers\VarDumper;
function dd($data, $exit = 0)
{
    VarDumper::dump($data, 10, true);
    if ($exit) {
        exit;
    }
}

在应用入口文件frontend/web/index.php引入:

require __DIR__ . '/../../common/functions.php';

这样,就能进行全局调用了:

frontend/controllers/SiteController.php

public function actionIndex()
{
    dd(Yii::$app, 1);
    return $this->render('index');
}

访问:http://frontend.test/index.php?r=site/index

自定义dd函数

url美化

默认情况,url规则是:http://****/index.php?r=控制器名/方法名,这种形式对于SEO并不友好,yii提供了url美化组件,调用相当简单,只需要进行以下设置:

frontend/config/main.php

'urlManager' => [
    'enablePrettyUrl' => true, // 美化url
    'showScriptName' => false, // 隐藏index.php
    'rules' => [
    ],
],

开启url美化后,原来的url形式不再支持,访问: http://frontend.test/index.php?r=site/index 并不生效,必须以这种形式:http://frontend.test/site/index

用户的注册登录

yii默认提供了用户的注册、登录、退出功能。只需要简单的几步配置,就可以完成整个流程。

首先,配置数据库:

common/config/main-local.php

'db' => [
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=localhost;dbname=yii2advanced',
    'username' => 'root',
    'password' => '',
    'charset' => 'utf8',
],

在本地创建yii2advanced数据库

然后,创建用户表。yii默认提供了user用户表的表结构,我们只需要使用migrate生成即可:

在终端执行:php yii migrate

数据迁移

程序自动创建了user表

用户表结构

接下来将之前设置的默认路由恢复为默认的site控制器

common/config/main.php, 将前面课程设置的 'defaultRoute' => 'index',删除

接着,删除frontend/controllers/SiteController.php的调试代码

最后,进入注册页面:http://frontend.test/site/signup

注册页面

密码设置为:password

注册成功后返回主页

登录成功

小结

本篇示范了如何用yii框架自带的用户注册登录功能。懂得怎么用是很简单的事,要了解其中的原理,就需要下功夫,从下节开始,我将介绍如何用yii框架快速构建表单,并进行数据验证,熟悉这些后,相信你也会惊叹于yii的高效便捷。

源码仓库

我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=22r6triy8zy80

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java3y

Tomcat+Servlet面试题都在这里

下面是我整理下来的Servlet知识点: ? 图上的知识点都可以在我其他的文章内找到相应内容。 Tomcat常见面试题 Tomcat的缺省端口是多少,怎么修改 ...

3393
来自专栏云计算与大数据

研发:Idea工具因为版本工具设置问题,导致全是红色

I have the current status of my files in the folders coloured red/brown. I tried...

833
来自专栏小白安全

小白博客 linux常用操作命令

常用指令 ls   显示文件或目录      -l 列出文件详细信息l(list)      -a 列出当前目录下所有文件及目录,包括隐藏的a...

2737
来自专栏java一日一条

理解Cookie和Session机制

会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确...

531
来自专栏禹都一只猫博客

flask的Blueprint,前后台蓝图注册

55710
来自专栏https://www.cnblogs.com/L

【Python语言】--Crontab结合Python脚本实现将日志每天写入到文件中

实际工作中将Python脚本每天定时写入到日志文件中的使用场景还是蛮多的,有很多种方法可以实现这种效果。本文选择一种方式实现,特将实现细节做如下分享,不当之处烦...

1092
来自专栏编程软文

linux常用指令

由于现在工作中linux用的越来越多,所以这里再重新梳理下。 1.tailf /home/tomcat/apache-tomcat-8.5.8/logs/cat...

1012
来自专栏Java架构沉思录

一文读懂分布式Session常见解决方案

前言 沉思君在之前的文章《谈谈HTTP状态保持》里介绍了有关HTTP状态保持的知识点,我们知道HTTP协议本身是无状态的,因此在使用HTTP协议进行通信的过程中...

2648
来自专栏Golang语言社区

Gogland更名为GoLand,并附加新功能

IDE改名 Jetbrains在2017年11月02日正式对外公布,Gogland IDE正式改名为GoLand。在社区之前的文章《你们使用的Go IDE要改名...

4039
来自专栏梁源的专栏

微信小程序入门到精通(标题党)

1572

扫码关注云+社区