Yii2.0学习第8课:一个简单的例子

2025-10-24 05:55:33

1、运行LNMP环境,进入Mysql,贴入以下代码:

CREATE TABLE IF NOT EXISTS `member` (  `id` mediumint(8) unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT,  `username` char(25) NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `member` (`username`) VALUES('name1'),('name2'),('name3'),('name4'),('name5'),('name6'),('name7'),('name8'),('name9'),('name10');

我们可以查看到新建的member表及数据:

Yii2.0学习第8课:一个简单的例子

Yii2.0学习第8课:一个简单的例子

Yii2.0学习第8课:一个简单的例子

2、创建了数据库,下面应该是创建数据库连接,这个我在前面的经验中有所介绍,请查看百度经验:https://jingyan.baidu.com/article/ea24bc39f5a883da63b33159.html

3、我们思考一下MVC的哪一层是用于链接数据库的,肯定是model,有的时候也称呼为“活动记录(Active Record)”,严格来讲,model和Active Record是不同的两种:

(1)yii\base\Model 被用于普通模型类的父类并与数据表无关;

(2)yii\db\ActiveRecord  通常是普通模型类的父类但与数据表有关联,它继承yii\base\Model,而且增加了数据库处理;

Yii2.0学习第8课:一个简单的例子

4、我们在前面讲到控制器ID的说明,ModelID的形式和Controller ID 其实是一样的,参看百度经验https://jingyan.baidu.com/article/495ba841c4001438b20ede73.html

在basic\models目录下创建Member.php(因为我们的数据表是member)贴彩囊新入以下代码:

<?php

namespace app\models;

use yii\db\ActiveRecord;

class Member extends ActiveRecord

{

}

Yii2.0学习第8课:一个简单的例子

5、接下来我们创建控制器层(C层),在controllers目录下创建MemberController.php文件,并贴入以下代码:

<?php

namespace app\controllers;

use yii\web\Controller;

use app\models\Member;

class MemberController extends Controller

{

public function actionIndex{

$result = Member::find()->all();

var_dump($result);

}

}

然后使用浏览器访问,查看效果近菌:

Yii2.0学习第8课:一个简单的例子

Yii2.0学习第8课:一个简单的例子

Yii2.0学习第8课:一个简单的例子

6、接下里我们引入一下“分页类”,并创建视图文件,并需改MemberController.php文件:

<?php

namespace app\controllers;

use yii\web\Controller;

use app\models\Member;

use yii\data\Pagination;

class MemberController extends Controller

{

public function actionIndex(){

$query  = Member::find();

$pagination = new Pagination([

'defaultPageSize'=>3,

'totalCount'=>$query->count(),

]);

$names = $query->offset($pagination->offset)->limit($pagination->limit)->all();

return $this->render('index',['names'=>$names,'pagination'宿宋=>$pagination]);

}

}

然后我们使用浏览器访问该控制器,发现缺少视图文件,同时提示了试图文件所在目录:

Yii2.0学习第8课:一个简单的例子

Yii2.0学习第8课:一个简单的例子

7、在views目录下创建member目录,并在member目录下创建文件index.php,

贴入以下代码:

<?php

use yii\helpers\Html;

use yii\widgets\LinkPager;

?>

<ul>

<?php foreach ($names as $name): ?>   

<li>       

<?= Html::encode("{$name->username}") ?>: 

</ul>

<?= LinkPager::widget(['pagination' => $pagination]) ?>

然后再次使用浏览器访问,查看效果:

Yii2.0学习第8课:一个简单的例子

Yii2.0学习第8课:一个简单的例子

8、至此,一个简单的例子就结束了,我们通过按照MCV的顺序一步一步的讲解,希望对你有所帮助。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢