了。
此时,我们再修改下新增页面,使新增完成后自动跳转到列表页 creat.php 内容改为:
???
???$note =new Model('notes'); ???if(Request::post()){
???//如果有post信息 则认为是新增后的Form提交
???//单纯的post信息判断是不安全的 因为没有具体的字段要求和判断所以可以这样写
???$note->load_from_post(); ???$note->save();
???Redirect::to('index'); ???} ????>
通过调用框架的Redirect::to方法而不是直接的视图引用,可以有效的屏蔽了F5刷新引起的重复提交问题。
信息详细页面
创建控制器文件:controller/notes/show.php 对应详细信息展示的控制器。 show.php内容如下:
???
???$note = new Model('notes'); ???$note->find(get(1)); ????>
创建视图文件:view/default/notes/show.html 对应详细信息展示的视图。 show.html 内容如下:
??? ??? ???
??????
???
???{loop $notes as $n}
charset=UTF-8\
???
???{$n->author}
???{$n->field_text('theme')} ???{date('Y-m-d',$n->postdate)}
???id}.html');}\删除 ??? ??? ???{/loop} ??? ??? ??? ??? 关于模板标签的说明:
1、 对于视图模板中的JS方法,因为同样是要包含大括号\所以在模板解释中会被解析器误认为是PHP模板标签,解决的方法是对于JS方法”{”之后要紧跟空格或者回车,这样解释器就不会将其解释成php语言。
2、 因为IE的某些问题,当要用到JS跳转时要调用框架中的goto方法,请不要采用传统的location.href=?的方式。这样控制器中的Redirect::back()方法才会生效。
创建控制器文件:controller/notes/delete.php 对应信息删除的控制器。 delete.php 内容为:
???
???if (isset($_GET[1])){
???//指定要操作的模型id 删除之 ???$note = new Model('notes'); ???$note->id($_GET[1]); ???$note->remove(); ???}
???//返回请求前的页面 ???Redirect::back(); ????>
信息修改页面
创建控制器文件:controller/notes/edit.php 对应每条数据的修改页面。
edit.php代码如下:
???
???$note = new Model('notes'); ???if(get()){
???//如果存在get提交的信息 ???$note->find(get(1)); ???} ????>
创建视图文件:view/default/notes/edit.html 对应修改展示的视图。 edit.html 内容如下:
??? ??? ???
???CRUD测试 ???