1. 程式人生 > >yii2實戰之用戶註冊登錄

yii2實戰之用戶註冊登錄

local SQ ref dbn mon 視圖 HP migrate 文件

繼控制器與視圖交互,本篇將講解如何自定義全局函數,以及使用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

技術分享圖片

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的高效便捷。

源碼倉庫

yii2實戰之用戶註冊登錄