齐博x1第五季《项目实战-留言板》06-优化add方法

2022-05-05 作者:torylf 分类:教程 阅读:675

上一节我们增加了add方法使其表单可以提交数据,但是体验非常槽糕

本节我们来优化下add方法,增加一点好的体验,使其提交后有一个反馈信息

即时演示地址:http://x1.alaiyeshi.net/msgboard


上节我们用的是模型中的create静态方法,提交数据,此方法返回的是一个实例,一般不做判断依据,所以经常静默提交数据用此方法比较好。

我们本节重新定义一个动态模型方法,用以实例化提交表单数据。

首先我们把对应的模型文件use引入,并定义一个别名,这样方便后面定义使用


然后我们定义一个model属性,并在初始化方法中实例化,


_initialize 是初始化方法,一切的初始操作都可以写在此方法中。

所以我们直接在此实例化(即new一个模型类)model属性,而不是在add方法中实例化,这样后面创建其他方法时也可以直接使用。


我们再打开MsgboardModel模型类,添加一个addMsgData()方法,来动态保存留言数据



这里可以直接使用tp的save方法来保存数据,如果成功则会返回记录数

注,save方法需要数组参数,也就是键值对形式的数组,也就是字段=>值,此处我们用data变量接收


我们再次修改index类下的add方法看下:



我们再次提交表单数据



我们看到,当前不是空白,因为我们提交成功了一条数据,并返回了1条记录数


那么我们只要判断提交记录大于0,然后给予反馈即可。于是:


我们把返回记录赋值给一个rs变量接收,并做判断,如果大于0,那么就利用系统内置success方法给予适当的反馈。

我们再提交数据看下:



此时,如果提交成功,我们就可以看到系统内置的反馈了界面了,是不是体验更友好了呢。


这里还有一个细节问题,我们继续处理下,比如如果我们没有通过表单提交,而是直接访问add方法


此时还是空白一片,这里我们应该再次给予一点反馈,比如直接访问则是非法请求等



我们通过request->isPost()方法可以判断出是否是post请求,如果不是,我们就返回一个反馈,我们此处返回非法请求,

用户可以自由发挥,比如返回一个模版或者跳转别处都可以的。




到此我们为其命名为留言板1.01版本,即msgboard 1.01






来源: 神盾工作室    转载请注明出处!

本文地址:https://www.shieldsoho.com/article/146.html

 标签: 模块开发 齐博X1
{{item.nickname}} @回复
发表于{{item.create_time}}

  • {{replyitem.nickname}} {{item.create_time}}
    @{{item.nickname}}

查看更多评论