伪删除

一般来说我们后台商品的信息是不能做直接的物理删除,一般我们会做逻辑上的删除,在表中为商品表设计一个字段,然后使用该字段的值表示删除与否.
image.png
获取没有删除的信息
image.png
伪删除操作:只要在原生的删除上面不做实际的物理删除,只是修改is_delete
使用setField
image.png
底层源码:
image.png

字段映射

image.png
问题:我们在表单中定义的input框的name属性就是表中字段的值例如:

  1. <input type="text"name="goods_name"value=""id=""/>

表中字段直接暴露给用户,用户可以根据表单中的数据猜出数据库里面表的结构,不安全、到时候可能产生攻击行为。
image.png
解决:可以使用TP内置一个字段映射进行处理。
大致思想:就是把数据里面的字段起一个别名,然后在表单中使用对应的别名进行数据的展示和收集
1.在GoodsModel.class.php文件定义表的字段和别名的映射关系
image.png
2.在添加的表单里面修改input的name属性,使用在第一步定义的别名(进行迷惑)
image.png
3.字段映射的底层的源码分析:查看Model.calss.php的create方法内部的处理机制,就是拿表中字段信息替换别名字段信息。
image.png

自动完成

有的时候我们添加的商品信息,可能需要增加一个添加的时候,那么我们可以让框架自动的帮我们进行处理,而不需要手工的进行添加,
image.png
只需要在GoodsModel.class.php中进行定义$_auto属性即可
image.png
image.png

自动验证

一般来说我们不应该相信客户端提交的数据,必须在后端进行验证后才可以入库,那么在TP里面提供一种自动验证的机制,可以帮我们验证客户端数据(基本目前所有框架全部都提供自动验证的功能)
image.png
例如:
在GoodsModel.class.phpE面定义$_validate属性
image.png
注意:在GoodsController.class.php里面实例化模型的时候,需要使用D函数(实例化自动义模型),并且还要使用create方法才可以进行自动验证(不使用create方法也不会进行自动验证的调用)
image.png