作用
使用通用数据编辑视图的时候,需要通过setEditMap
设置数据的保存条件。下例所示通过setEditMap(array('id'=>I('get.id')))
设置根据当前的角色id对编辑后的角色数据进行保存。
示例
视图类实现
/**
* 编辑角色
* @author 艾逗笔<765532665@qq.com>
*/
public function edit() {
$this->addCrumb('系统管理', U('Index/index'), '')
->addCrumb('角色管理', U('Role/lists'), '')
->addCrumb('编辑角色', '', 'active')
->addNav('编辑角色', '', 'active')
->setModel('rbac_role')
->addFormField('name', '角色名称', 'text', array('placeholder'=>'管理员'))
->addFormField('remark', '角色描述', 'textarea')
->addFormField('type', '角色类型', 'radio', array('options'=>array('system_manager'=>'系统管理员','admin_manager'=>'后台管理员','mp_manager'=>'公众号管理员'),'tip'=>'在没有设置角色访问授权的前提下,角色类型起作用。系统管理员可以进入系统后台和公众号管理后台,后台管理员仅能进入系统后台,公众号管理员仅能进入公众号管理后台'))
->addFormField('status', '状态', 'radio', array('options'=>array(0=>'禁用',1=>'正常')))
->addValidate('name', 'require', '角色名称不能为空', 1, 'regex', 3)
->setFormData(M('rbac_role')->find(I('id')))
->setEditMap(array('id'=>I('get.id')))
->common_edit();
}
模型实现
$model['edit_map'] = array('id'=>I('get.id'));
在使用通用数据编辑模板保存数据的时候必须要指定edit_model,否则数据将不会保存成功。如果edit_map的条件中需要用到当前浏览器传递的参数的时候,必须要指定参数获取方式,例如此例必须要用
I('get.id')
而不能用I('id')