做者:白狼 出處:http://www.manks.top/document/easy_blog_manage_system.html 本文版權歸做者,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,不然保留追究法律責任的權利。 一、簡介 快速入門指南會對Yii2框架作一個基本介紹,包括數據庫遷移、gii操做、AR模型、路由、驗證、視圖等等。若是你是個Yii2新手甚至以前對PHP框架也很陌生,那麼這裏將會成爲你的良好起點。若是你已經使用而且掌握了Yii2框架基礎,能夠期待Yii2高級篇教程(後面我會更新)。php
爲了演示Yii2特性的基本使用,我將會帶領你們構建一個簡單的博客管理系統。html
二、安裝 咱們前面寫過關於Yii2完整版的安裝教程,你能夠點擊進行參考,這裏只作步驟,再也不作必要的講解。mysql
composer global require "fxp/composer-asset-plugin:~1.1.1" composer create-project yiisoft/yii2-app-advanced advanced 2.0.8 cd advanced php init #以後構建本地環境,咱們配置advanced.dev指向frontend/web目錄
三、準備好數據庫 在開發和維護一個數據庫驅動的應用程序時,數據庫的結構會隨代碼的改變而改變。例如,在開發應用程序的過程當中,會增長一張新表且必須得加進來; 在應用程序被部署到生產環境後,須要創建一個索引來提升查詢的性能等等。 由於一個數據庫結構發生改變的時候源代碼也常常會須要作出改變,Yii 提供了一個 數據庫遷移 功能,該功能能夠記錄數據庫的變化, 以便使數據庫和源代碼一塊兒受版本控制。web
在本例中,咱們使用yii migrate命令生成博客 blog 對應的數據表遷移:sql
yii migrate/create create_blog_table
該命令生成的遷移文件位於 advanced\console\migrations 目錄,可能你已經注意到了,yii migrate 命令已經在遷移文件中爲咱們添加了主鍵ID和表名,接下來咱們要編輯該文件修改表名以及添加更多的列到數據表blog:數據庫
<?php use yii\db\Migration; /** * Handles the creation for table `blog_table`. */ class m160525_153315_create_blog_table extends Migration { /** * @inheritdoc */ public function up() { $this->createTable('blog', [ 'id' => $this->primaryKey(), 'title' => $this->string(100)->notNull()->defaultValue(''), 'content' => $this->text(), 'create_time' => $this->datetime(), ]); } /** * @inheritdoc */ public function down() { $this->dropTable('blog'); } }
運行遷移以前,咱們先把數據庫配置一番,打開common\config\main-local.php文件,咱們看到components下面的db配置,參考以下配置就好bootstrap
'components' => [ 'db' => [ 'class' => 'yii\db\Connection', // 修改host 和dbname 以前須要手動建立了dbname才能夠 'dsn' => 'mysql:host=localhost;dbname=advanced', //登陸數據庫的帳號 'username' => 'root', //登陸數據庫的密碼 'password' => '', 'charset' => 'utf8', ], // other code ],
數據庫配置好了以後,運行執行以下命令運行migrate設計模式
./yii migrate
期間會讓咱們確認,yes後回車便可,該命令會爲咱們建立遷移文件(console\migrations目錄)中定義的全部數據表,執行完該命令打開數據庫會發現,咱們的blog表已經建立了,其中包含了在遷移中定義的列。yii2
四、使用gii生成AR模型和CRUD gii是yii2中的一個模塊,是一種高度可定製和可擴展的代碼生成工具。使用它能夠大幅提升咱們的開發效率,後面我會也會講解如何用gii定製咱們須要的模版以及程序代碼。若是你在安裝的過程當中,像咱們同樣選擇的是開發環境,gii默認是開啓的。也就是說咱們無需再進行配置即可以使用。你也能夠打開文件 advanced\frontend\config\main-local.php查看配置代碼。app
if (!YII_ENV_TEST) { // other code $config['bootstrap'][] = 'gii'; $config['modules']['gii'] = [ 'class' => 'yii\gii\Module', ]; }
接着經過地址 http://advanced.dev/index.php?r=gii 訪問gii模塊(在一開始咱們配置了advanced.dev指向了frontend/web目錄),藉助其特性幫助咱們生成這次操做所必需的一系列代碼。
4.1生成AR模型類
模型是MVC設計模式中的一部分,使用模型不只能讓咱們存取數據變得相對簡單和方便,更多地協助咱們處理複雜的業務和邏輯。關於更多的有關模型的描述,能夠參考相關手冊或文檔,有任何問題你也能夠下方留言。
咱們回過頭來點擊gii頁面上的Model Generator start,像下面這樣生成AR模型類。
(圖片見原文)
4.2生成CRUD代碼
所謂的CRUD無非就是Create Read Update Delete,也就是建立、讀取、更新和刪除。包含了常見Web開發的基本操做。若是你剛剛用gii生成了Model,此時點擊左側菜單CRUD Generator像下面這樣生成crud再好不過了。
(圖片見原文)
關於更多gii的操做你能夠參考yii2 gii的詳細操做步驟。
目前爲止,咱們藉助gii生成了model,curd一系列操做。
有好提示:實際開發中,後臺管理理應利用gii協助開發,可快速提升開發效果。
按照以上操做,咱們會在以下相關目錄生成9個文件
common\models\Blog.php common\models\BlogSearch.php frontend\controllers\BlogController.php frontend\views\blog\_form.php frontend\views\blog\_search.php frontend\views\blog\create.php frontend\views\blog\index.php frontend\views\blog\update.php frontend\views\blog\view.php
接着能夠經過路由訪問 http://advanced.dev/index.php?r=blog 看到blog具體頁面信息。
五、添加博客 [考慮目前國內網站大部分採集文章十分頻繁,更有甚者不註明原文出處,原做者更但願看客們查看原文,以防有任何問題不能更新全部文章,避免誤導!]