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