首先我们来分析下项目需求:
这个新闻系统, 所有用户可以查新新闻, 但只有注册用户才可以评论新闻.用户可以随便注册成为注册用户.
建表的sql语句如下:
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- 数据库: `shiehnews` -- -- -------------------------------------------------------- -- -- 表的结构 `articles` -- CREATE TABLE IF NOT EXISTS `articles` ( `id` int(11) NOT NULL auto_increment, `userId` int(11) NOT NULL, `categoryId` int(11) NOT NULL, `title` varchar(255) NOT NULL, `createdTime` int(11) NOT NULL, `modifiedTime` int(11) NOT NULL, `content` text NOT NULL, `viewNum` int(11) NOT NULL default '0', `commentNum` int(11) NOT NULL default '0', PRIMARY KEY (`id`), KEY `fk_articles_users` (`userId`), KEY `fk_articles_categories` (`categoryId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- -- -- 表的结构 `categories` -- CREATE TABLE IF NOT EXISTS `categories` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- -- -- 表的结构 `comments` -- CREATE TABLE IF NOT EXISTS `comments` ( `id` int(11) NOT NULL auto_increment, `userId` int(11) NOT NULL, `articleId` int(11) NOT NULL, `comment` text NOT NULL, `createdTime` int(11) NOT NULL, `modifiedTime` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `fk_comments_articles` (`articleId`), KEY `fk_comments_users` (`userId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- -- -- 表的结构 `users` -- CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL auto_increment, `username` varchar(45) NOT NULL, `password` varchar(45) NOT NULL, `articleNum` int(11) NOT NULL default '0', `commentNum` int(11) NOT NULL default '0', `email` varchar(50) NOT NULL, `nickname` varchar(50) default NULL, `createdTime` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
下载Yii框架, 我使用的是SVN版的, 大家可以下载1.0.7的.将Yii框架放到D:\yii下,在D盘根目录下执行
yii\framework\yiic.bat webapp shiehnews-yii
建立项目, 然后进入项目, 修改protected\config\main.php, 修改里面name值,改成ShiehNews, 接着修改db值
将db值修改为:
'db' => array( 'class' => 'CDbConnection', 'connectionString' => 'mysql:host=localhost;dbname=shiehnews', 'username' => 'root', 'password' => 'root', 'charset' => 'utf8', ),
dbname改成数据库的名称,username和password改成自己数据库的用户名和密码.保存即可.
回到命令行, 进入shiehnews-yii目录, 执行
protected\yiic.bat shell
运行代码生成器, 使用model <ModelName>来建立4个model, 对应我们建的4张表, 这里给4个model启的名字分别为Article, Category, Comment, User, 建好后, 使用crud Article和crud User来建立脚手架. 完成后, 输入exit退出.
至此, 我们已经建立了需要的数据库, 也创建了项目目录, 同时也有了4个model和2个controller, 下一节开始, 我们一起来增加注册, 登录和注销的功能.