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 条评论
登录 后参与评论

相关文章

来自专栏Linux Python 加油站

什么是爬虫?python爬虫基本知识

把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。 网络蜘蛛是通过网页的链接地址来寻找网页的。

1533
来自专栏编程微刊

基于mpvue的小程序项目搭建的步骤步骤1. 检查下 Node.js 是否安装成功

1353
来自专栏编程微刊

微信小程序从零开始开发步骤(二)创建小程序页面

2417
来自专栏挖坑填坑

angular编译版本冲突解决办法总结

632
来自专栏DeveWork

提升用户体验,微信小程序“授权失败”场景的优雅处理

微信小程序中提供了相关API 让开发者能获取到微信用户的相关信息,在首次去获取的时候会展示一个用户是否同意授权的对话框。Jeff 发现有不少线上的小程序都没有处...

2319
来自专栏lgp20151222

养成良好的开发习惯

写数据库的crud的时候,能批量就批量了,别写什么一个id查一个数据,批量获取就包含了它了,只要再写一个类处理一下,就省下很多sql语句了。

813
来自专栏web前端

smartClient 1--框架介绍

    快速构建 大型企业应用开发(无需过多关注UI),适合基于云技术的应用,主要关注业务的发展和营销,加快开发进程

960
来自专栏魏艾斯博客www.vpsss.net

如何使用 MAMP 快速搭建 php 环境

1885
来自专栏web前端

smartClient 1--框架介绍

一、是什么(以下简称SC)     smartClient 是一个基于web技术的开发框架,主要包括: 一个无需安装的 Ajax/HTML5 客户端引擎 UI组...

2198
来自专栏pangguoming

使用Redis的五个注意事项

下面内容来源于Quora上的一个提问,问题是使用Redis需要避免的五个问题。而回答中超出了五个问题的范畴,描述了五个使用Redis的注意事项。如果你在使用或者...

3375

扫码关注云+社区