YYUC开发手册(某微信平台开发框架)(4)

2019-06-02 14:08

了。

此时,我们再修改下新增页面,使新增完成后自动跳转到列表页 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 内容如下:

??? ??? ??? ???

???CRUD测试-详细信息 ??? ??? ??? ??? ???

???{$note->lable('title')} ???{$note->lable('author')} ???{$note->lable('theme')} ???{$note->lable('postdate')} ???删除 ???编辑 ???

???{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测试 ???