目錄
yii2实战教程之新手入门指南-简单博客管理系统,yii2新手入门
1、简介
2、安装
3、准备好数据库
4、使用gii生成AR模型和CRUD
4.1生成AR模型类
4.2生成CRUD代码
5、添加博客
5.1添加前准备
首頁 後端開發 php教程 yii2实战教程之新手入门指南-简单博客管理系统,yii2新手入门_PHP教程

yii2实战教程之新手入门指南-简单博客管理系统,yii2新手入门_PHP教程

Jul 12, 2016 am 08:50 AM
yii2 部落格 實戰 指南 教學 新手入門 簡單 管理系統

yii2实战教程之新手入门指南-简单博客管理系统,yii2新手入门

1、简介

快速入门指南会对Yii2框架做一个基本介绍,包括数据库迁移、gii操作、AR模型、路由、验证、视图等等。如果你是个Yii2新手甚至之前对PHP框架也很陌生,那么这里将会成为你的良好起点。如果你已经使用并且掌握了Yii2框架基础,可以期待Yii2高级篇教程(后面我会更新)。

为了演示Yii2特性的基本使用,我将会带领大家构建一个简单的博客管理系统。

本教程完整的代码后期会公开于github上。

2、安装

我们前面写过关于Yii2完整版的安装教程,你可以点击进行参考,这里只做步骤,不再做必要的讲解。

1

2

3

4

composer <span>global</span> <span>require</span> "fxp/composer-asset-plugin:~1.1.1"<span>

composer create</span>-project yiisoft/yii2-app-advanced advanced 2.0.8<span>

cd advanced

php init<br /></span>

登入後複製

1

#之后构建本地环境,我们配置advanced.dev指向frontend/web目录

登入後複製

3、准备好数据库

在开发和维护一个数据库驱动的应用程序时,数据库的结构会随代码的改变而改变。例如,在开发应用程序的过程中,会增加一张新表且必须得加进来; 在应用程序被部署到生产环境后,需要建立一个索引来提高查询的性能等等。 因为一个数据库结构发生改变的时候源代码也经常会需要做出改变,Yii 提供了一个 数据库迁移 功能,该功能可以记录数据库的变化, 以便使数据库和源代码一起受版本控制。

在本例中,我们使用yii migrate命令生成博客 blog 对应的数据表迁移:

1

yii migrate/create create_blog_table

登入後複製

该命令生成的迁移文件位于 advanced\console\migrations 目录,可能你已经注意到了,yii migrate 命令已经在迁移文件中为我们添加了主键ID和表名,接下来我们要编辑该文件修改表名以及添加更多的列到数据表blog:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

<?<span>php

 

</span><span>use</span><span> yii\db\Migration;

 

</span><span>/*</span><span>*

 * Handles the creation for table `blog_table`.

 </span><span>*/</span>

<span>class</span> m160525_153315_create_blog_table <span>extends</span><span> Migration

{

    </span><span>/*</span><span>*

     * @inheritdoc

     </span><span>*/</span>

    <span>public</span> <span>function</span><span> up()

    {

        </span><span>$this</span>->createTable('blog',<span> [

            </span>'id' => <span>$this</span>->primaryKey(),

            'title' => <span>$this</span>-><span>string</span>(100)->notNull()->defaultValue(''),

            'content' => <span>$this</span>->text(),

            'create_time' => <span>$this</span>->datetime(),<span>

        ]);

    }

 

    </span><span>/*</span><span>*

     * @inheritdoc

     </span><span>*/</span>

    <span>public</span> <span>function</span><span> down()

    {

        </span><span>$this</span>->dropTable('blog'<span>);

    }

}</span>

登入後複製

运行迁移之前,我们先把数据库配置一番,打开common\config\main-local.php文件,我们看到components下面的db配置,参考如下配置就好

1

2

3

4

5

6

7

8

9

10

11

12

13

'components' =><span> [

    </span>'db' =><span> [

        </span>'class' => 'yii\db\Connection',

        <span>//</span><span> 修改host 和dbname 之前需要手动创建了dbname才可以</span>

        'dsn' => 'mysql:host=localhost;dbname=advanced',

        <span>//</span><span>登录数据库的账号</span>

        'username' => 'root',

        <span>//</span><span>登录数据库的密码</span>

        'password' => '',

        'charset' => 'utf8',<span>

    ]</span>,

    <span>//</span><span> other code</span>

],

登入後複製

数据库配置好了之后,运行执行如下命令运行migrate

1

./yii migrate

登入後複製

期间会让我们确认,yes后回车即可,该命令会为我们创建迁移文件(console\migrations目录)中定义的所有数据表,执行完该命令打开数据库会发现,我们的blog表已经创建了,其中包含了在迁移中定义的列。

4、使用gii生成AR模型和CRUD

gii是yii2中的一个模块,是一种高度可定制和可扩展的代码生成工具。使用它可以大幅提高我们的开发效率,后面我会也会讲解如何用gii定制我们需要的模版以及程序代码。如果你在安装的过程中,像我们一样选择的是开发环境,gii默认是开启的。也就是说我们无需再进行配置便可以使用。你也可以打开文件 advanced\frontend\config\main-local.php查看配置代码。

1

2

3

4

5

6

7

<span>if</span> (!<span>YII_ENV_TEST) {

    </span><span>//</span><span> other code</span>

    <span>$config</span>['bootstrap'][] = 'gii'<span>;

    </span><span>$config</span>['modules']['gii'] =<span> [

        </span>'class' => 'yii\gii\Module',<span>

    ];

}</span>

登入後複製

接着通过地址 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个文件

1

2

3

4

5

6

7

8

9

common\models\Blog.<span>php

common\models\BlogSearch</span>.<span>php

frontend\controllers\BlogController</span>.<span>php

frontend\views\blog\_form</span>.<span>php

frontend\views\blog\_search</span>.<span>php

frontend\views\blog\create</span>.<span>php

frontend\views\blog\index</span>.<span>php

frontend\views\blog\update</span>.<span>php

frontend\views\blog\view</span>.php

登入後複製

接着可以通过路由访问http://advanced.dev/index.php?r=blog看到blog具体页面信息。

5、添加博客

5.1添加前准备

[考虑目前国内网站大部分采集文章十分频繁,更有甚者不注明原文出处,原作者更希望看客们查看原文,以防有任何问题不能更新所有文章,避免误导!]

继续阅读

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1133415.htmlTechArticleyii2实战教程之新手入门指南-简单博客管理系统,yii2新手入门 1、简介 快速入门指南会对Yii2框架做一个基本介绍,包括数据库迁移、gii操作...
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

兩個點博物館:邦格荒地地點指南
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

兩個點博物館:邦格荒地地點指南
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

得物使用教程 得物使用教程 Mar 21, 2024 pm 01:40 PM

得物使用教程

VSCode 設定中文:完全指南 VSCode 設定中文:完全指南 Mar 25, 2024 am 11:18 AM

VSCode 設定中文:完全指南

微信關收款聲音的步驟教程 微信關收款聲音的步驟教程 Mar 26, 2024 am 08:30 AM

微信關收款聲音的步驟教程

photoshopcs5是什麼軟體? -photoshopcs5使用教學課程 photoshopcs5是什麼軟體? -photoshopcs5使用教學課程 Mar 19, 2024 am 09:04 AM

photoshopcs5是什麼軟體? -photoshopcs5使用教學課程

PHP實戰:快速實作斐波那契數列的程式碼範例 PHP實戰:快速實作斐波那契數列的程式碼範例 Mar 20, 2024 pm 02:24 PM

PHP實戰:快速實作斐波那契數列的程式碼範例

專家教你!華為手機截長圖的正確方法 專家教你!華為手機截長圖的正確方法 Mar 22, 2024 pm 12:21 PM

專家教你!華為手機截長圖的正確方法

夏天,一定要試試拍攝彩虹 夏天,一定要試試拍攝彩虹 Jul 21, 2024 pm 05:16 PM

夏天,一定要試試拍攝彩虹

PHP教學:如何將int型別轉換為字串 PHP教學:如何將int型別轉換為字串 Mar 27, 2024 pm 06:03 PM

PHP教學:如何將int型別轉換為字串

See all articles