齐博x1第五季《项目实战-留言板》06-优化add方法
上一节我们增加了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
来源: 神盾工作室 转载请注明出处!
查看更多评论