Yii2框架博客系统创建文章控制器与数据表
标题
1.创建文章控制器
文章控制拟名为PostController.php
为了方便后续的操作 习惯创建了一个Controller/base/BaseController.php
PostController.php 代码实例 | BaseController.php 代码实例 |
<?php namespace frontend\controllers; /** * 文章控制器 */ use Yii; use frontend\controllers\base\BaseController; #⤴️正确的引入basecontroller /** * 文章列表 */ public function actionIndex(){ return $this->render('index'); } } ?> |
<?php namespace frontend\controllers\base; /** * 基础控制器 */ use yii\web\Controller; class BaseController extends Controller{ public function beforeAction($action) { if (!parent::beforeAction($action)) { return false; } return true; } } ?> |
备注:// 如果没有zend studio,不会自动引入文件。 所以在SiteController类改继承BaseController时, 会找不到类。自行添加引用,在文中添加加红语句即可 |
2. 创建文章相关数据表
sql语句展示
post 文章表 | cats 分类表 |
CREATE TABLE `posts` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增ID', `title` varchar(255) DEFAULT NULL COMMENT '标题', `summary` varchar(255) DEFAULT NULL COMMENT '摘要', `content` text COMMENT '内容', `label_img` varchar(255) DEFAULT NULL COMMENT '标签图', `cat_id` int(11) DEFAULT NULL COMMENT '分类id', `user_id` int(11) DEFAULT NULL COMMENT '用户id', `user_name` varchar(255) DEFAULT NULL COMMENT '用户名', `is_valid` tinyint(1) DEFAULT '0' COMMENT '是否有效:0-未发布 1-已发布', `created_at` int(11) DEFAULT NULL COMMENT '创建时间', `updated_at` int(11) DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`), KEY `idx_cat_valid` (`cat_id`,`is_valid`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=111 DEFAULT CHARSET=utf8 COMMENT='文章主表'; |
CREATE TABLE `cats` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增ID', `cat_name` varchar(255) DEFAULT NULL COMMENT '分类名称', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='分类表'; |
tag 标签表 | relation_post_tags 文章和标签关系表 |
CREATE TABLE `tags` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增ID', `tag_name` varchar(255) DEFAULT NULL COMMENT '标签名称', `post_num` int(11) DEFAULT '0' COMMENT '关联文章数', PRIMARY KEY (`id`), UNIQUE KEY `tag_name` (`tag_name`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=36 DEFAULT CHARSET=utf8 COMMENT='标签表'; |
CREATE TABLE `relation_post_tags` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增ID', `post_id` int(11) DEFAULT NULL COMMENT '文章ID', `tag_id` int(11) DEFAULT NULL COMMENT '标签ID', PRIMARY KEY (`id`), UNIQUE KEY `post_id` (`post_id`,`tag_id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=66 DEFAULT CHARSET=utf8 COMMENT='文章和标签关系表'; |
补充 目录结构
完成基本的部署