繼控制器與視圖交互傍念,本篇將講解如何自定義全局函數(shù)矫夷,以及使用yii自帶的用戶注冊(cè)登錄功能
全局函數(shù)
有時(shí)候我們希望自定義一些函數(shù),可以在全局中調(diào)用憋槐,如php默認(rèn)的var_dump
在頁(yè)面上的顯示效果并不好双藕,尤其是多層級(jí)數(shù)組的情況下,一大坨數(shù)據(jù)很難分辨阳仔。對(duì)此忧陪,yii提供了VarDumper
助手,可以輸出美觀易讀的信息近范,只是調(diào)用較為繁瑣赤嚼,為了開發(fā)的體驗(yàn)更流暢,可以自定義全局函數(shù)顺又,將常用的功能封裝更卒,便于調(diào)用。
首先稚照,新建common/functions.php
<?php
use yii\helpers\VarDumper;
function dd($data, $exit = 0)
{
VarDumper::dump($data, 10, true);
if ($exit) {
exit;
}
}
在應(yīng)用入口文件frontend/web/index.php
引入:
require __DIR__ . '/../../common/functions.php';
這樣蹂空,就能進(jìn)行全局調(diào)用了:
frontend/controllers/SiteController.php
public function actionIndex()
{
dd(Yii::$app, 1);
return $this->render('index');
}
訪問:http://frontend.test/index.php?r=site/index
url美化
默認(rèn)情況,url規(guī)則是:http://****/index.php?r=控制器名/方法名
果录,這種形式對(duì)于SEO并不友好上枕,yii提供了url美化組件,調(diào)用相當(dāng)簡(jiǎn)單弱恒,只需要進(jìn)行以下設(shè)置:
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
用戶的注冊(cè)登錄
yii默認(rèn)提供了用戶的注冊(cè)锈玉、登錄爪飘、退出功能。只需要簡(jiǎn)單的幾步配置拉背,就可以完成整個(gè)流程师崎。
首先,配置數(shù)據(jù)庫(kù):
common/config/main-local.php
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=yii2advanced',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
],
在本地創(chuàng)建yii2advanced
數(shù)據(jù)庫(kù)
然后椅棺,創(chuàng)建用戶表犁罩。yii默認(rèn)提供了user
用戶表的表結(jié)構(gòu),我們只需要使用migrate生成即可:
在終端執(zhí)行:php yii migrate
程序自動(dòng)創(chuàng)建了user表
接下來將之前設(shè)置的默認(rèn)路由恢復(fù)為默認(rèn)的site控制器
在common/config/main.php
, 將前面課程設(shè)置的 'defaultRoute' => 'index',
刪除
接著两疚,刪除frontend/controllers/SiteController.php
的調(diào)試代碼
最后床估,進(jìn)入注冊(cè)頁(yè)面:http://frontend.test/site/signup
密碼設(shè)置為:password
注冊(cè)成功后返回主頁(yè)
小結(jié)
本篇示范了如何用yii框架自帶的用戶注冊(cè)登錄功能。懂得怎么用是很簡(jiǎn)單的事诱渤,要了解其中的原理顷窒,就需要下功夫,從下節(jié)開始源哩,我將介紹如何用yii框架快速構(gòu)建表單,并進(jìn)行數(shù)據(jù)驗(yàn)證鸦做,熟悉這些后励烦,相信你也會(huì)驚嘆于yii的高效便捷。
我的博客即將搬運(yùn)同步至騰訊云+社區(qū)泼诱,邀請(qǐng)大家一同入駐:https://cloud.tencent.com/developer/support-plan?invite_code=22r6triy8zy80