Yii2.0学习第8课:一个简单的例子
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表及数据:
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,而且增加了数据库处理;
4、我们在前面讲到控制器ID的说明,ModelID的形式和Controller ID 其实是一样的,参看百度经验https://jingyan.baidu.com/article/495ba841c4001438b20ede73.html在basic\models目录下创建Member.php(因为我们的数据表是member)贴入以下代码:<?phpnamespace app\models;use yii\db\ActiveRecord;class Member extends ActiveRecord{}
5、接下来我们创建控制器层(C层),在controllers目录下创建MemberController.php文件,并贴入以下代码:<?phpnamespace app\controllers;use yii\web\Controller;use app\models\Member;class MemberController extends Controller{public function actionIndex{$result = Member::find()->all();var_dump($result);}}然后使用浏览器访问,查看效果:
6、接下里我们引入一下“分页类”,并创建视图文件,并需改MemberController.php文件:<?phpnamespace 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]);}}然后我们使用浏览器访问该控制器,发现缺少视图文件,同时提示了试图文件所在目录:
7、在views目录下创建member目录,并在member目录下创建文件index.php,贴入以下代码:<?phpuse y足毂忍珩ii\helpers\Html;use yii\widgets\LinkPager;?><ul><?php foreach ($names as $name): ?> <li> <?= Html::encode("{$name->username}") ?>: </ul><?= LinkPager::widget(['pagination' => $pagination]) ?>然后再次使用浏览器访问,查看效果:
8、至此,一个简单的例子就结束了,我们通过按照MCV的顺序一步一步的讲解,希望对你有所帮助。