新增页面展示

创建控制器文件:controller/notes/creat.php 对应新增的控制器。

creat.php 内容如下:

<?php
$note = new Model('notes');
?>

这句话的意思是依照表:qq_notes创建模型文件。

为什么传入的参数中"qq_"没有写呢,因为为了一库多用,我们在数据库配置中将"数据库表前缀"设置为了:qq_。那么对于程序开发来说,所有的对表qq_notes的描述都要用到他除去前缀之后的名字:notes。

创建视图文件:view/default/notes/creat.html 对应新增的视图。

creat.html 内容如下:

<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
<title>CRUD测试</title>
</head>
<body>
<form action="" method="post">
标题:{$note->text('title')}<br/>
作者:{$note->text('author')}
主题:{$note->select('theme')}<br/>
发表时间:{$note->date('postdate')}
是否发布:{$note->checkbox('bepublished')}<br/>
内容:<br/>
{$note->textarea('content')}<br/>
<button type="submit">提交</button>
</form>
</body>
</html>

好了,新增页面的展示工作就完成了,可能你会对页面上的这些标签感到奇怪,甚至会想:"哎呀,又是该死的视图标签,要学这个框架就要掌握这些烦人的标签了"。

不急让我们先访问以下这个页面,之后你就会发现,YY框架的标签是这么的易学和神奇。

输入网址:http://www.yyuc.net/notes/creat.html,我们可以看到页面展示出来。

因为标题(title)字段的默认值是:"新建标题",所以该项内容会自动填充,让我们来测试以下,我们把数据库中主题(theme)字段的默认值修改为:"Humanities":

刷新下页面你会发现主题字段的默认值随之改变了。

关于模板标签的说明:

对于在控制器中定义的模型变量(如上例中的"$note"),可以在对应的视图中展示针对不同字段的相应的标签:

表单项 对应html 备注
all <textarea></textarea>... 模型所有非空属性的表单集合(隐藏的)
text <input type="text"/> 文本输入
password <input type="password"/> 密码框
email <input type="email"/> 邮件输入框(html5)
range <input type="range"/> 程度选择框(html5)
hidden <input type="hidden"/> 隐藏标签
textarea <textarea></textarea> 文本框
checkbox <input type="checkbox"/> 多选按钮
select <select>...</select> 下拉框
radio <input type="radio"/> 单选按钮
date <input type="text"/> 时间选择
datetime <input type="text"/> 时间日期选择
texteditor <textarea></textarea> 富文本编辑器
color <input type="text"/> 颜色选择框
vercode <input type="text"/> 验证码输入框
upload <input type="file"/> 文件上传

因为只是基本的增删改查功能的实现,并不涉及到自定义的数据和页面样式的问题,所以详细的使用方法参考模型类API。

鼠标点击"发表时间"文本框时,会有日期选择框弹出,这是因为框架会对每个页面自动引入Jquery库和基于Jquery的框架适配器。视图页面中你不需要添加一行js代码就能实现这一功能。

你可能还会有疑问,前面提到的数据库设计中的注记在这个页面中并没有体现出来,好吧,我们把creat.html 的内容改成这个样子:

<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
<title>CRUD测试</title>
</head>
<body>
<form action="" method="post">
{$note->lable('title')}:{$note->text('title')}<br/>
{$note->lable('author')}:{$note->text('author')}
{$note->lable('theme')}:{$note->select('theme')}<br/>
{$note->lable('postdate')}:{$note->date('postdate')}
{$note->lable('bepublished')}:{$note->checkbox('bepublished')}<br/>
{$note->lable('content')}:<br/>
{$note->texteditor('content')}<br/>
<button type="submit">提交</button>
</form>
</body>
</html>

刷新页面显示效果和之前的是一样的。