繼控制器與視圖交互,本篇將講解如何自定義全局函數,以及使用yii自帶的用戶註冊登陸功能php
有時候咱們但願自定義一些函數,能夠在全局中調用,如php默認的var_dump
在頁面上的顯示效果並很差,尤爲是多層級數組的狀況下,一大坨數據很難分辨。對此,yii提供了VarDumper
助手,能夠輸出美觀易讀的信息,只是調用較爲繁瑣,爲了開發的體驗更流暢,能夠自定義全局函數,將經常使用的功能封裝,便於調用。mysql
首先,新建common/functions.php
git
<?php use yii\helpers\VarDumper; function dd($data, $exit = 0) { VarDumper::dump($data, 10, true); if ($exit) { exit; } }
在應用入口文件frontend/web/index.php
引入:web
require __DIR__ . '/../../common/functions.php';
這樣,就能進行全局調用了:sql
frontend/controllers/SiteController.php數據庫
public function actionIndex() { dd(Yii::$app, 1); return $this->render('index'); }
訪問:http://frontend.test/index.ph...數組
默認狀況,url規則是:http://****/index.php?r=控制器名/方法名
,這種形式對於SEO並不友好,yii提供了url美化組件,調用至關簡單,只須要進行如下設置:yii2
frontend/config/main.php
app
'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的高效便捷。