# 注入和回调 以[名字服务配置]("http://admin.duowan.com/#!nodeId=7449")为例子说明 所有以php代码进行的回调, 回调代码都可以使用phpbase2框架的方法,如创建数据库连接 **[1. 内嵌Css或Js](#内嵌Css或Js)**
**[2. 保存回调](#保存回调)**
**[3. 数据库表名回调](#数据库表名回调)**
**[4. 字段回调 ](#字段回调 )** ## 内嵌Css或Js ![inject-callbacke-css](../src/img/inject-callbacke-css.png) 插入时遵循**<script>js代码<script><style type='text/css>css代码</style>** ## 保存回调 ![inject-callback-save](../src/img/inject-callback-save.png) - **保存回调**需要先勾选可编辑选项 - 回调结束需要return 结果,否则回调处理不生效 - 使用回调方法Diy_Table:on('eventName', function($args) { })处理回调逻辑 - 自定义的方法或者类可以在回调方法Diy_Table::on外定义,回调方法内直接调用即可 - 回调方法的event可分为: > diy_edit_save:before 添加/保存/删除 前置事件,返回false会终止操作 > diy_edit_save:after 添加/保存/删除 后置事件 > diy_edit_import:before 导入 前置事件,参数:\&\$rows > diy_edit_import:after 导入 后置事件,参数:\&\$rows - 可以通过回调函数的\$args传参获取保存过程的一些相关数据,$args参数: > type 保存类型(eg:add,edit,del) > newData 提交时的数据集(注意,编辑模式提交的数据没有变更,不会存放到newData,需要从oldData中获取) > oldData 编辑时分配的数据集 - del类型时需要使用\$args的where参数获取对应的删除行源数据 ## 数据库表名回调 ![inject-callback-database](../src/img/inject-callback-database.png) - 通过**condition\[字段名\]\[操作符\]**获取各个搜索添加的参数值,操作符对应搜索配置时下拉选择的字段关系:=,!=,>,>=,<,<=,like,like .%(开头类似于),like %(结尾类似于).,in,not in,:(区间于) - 代码处理最终需要return最终的表名处理结果 - 数据库名回调相当于sql查询的表名部分,即:**select * from (数据库明发回调) where ....**,所以,可以将回调结果处理成子查询,完成较为复杂的逻辑 - 表名部分会做数据查询和数据行数统计的查询,在拼接sql的时候要注意两个部分sql的一致 ## 字段回调 ![filed_callback](../src/img/filed_callback.png) - 字段配置的回调也都是使用php代码实现的,但要注意要以::开头,最后return结果