前台操作
前台页面的 name 值 更改下 最好与数据库字段相同 方便操作不需要接收更改数据名字 直接接收
引入layer.js 放在
前台form表单编辑
<form class="am-form am-form-horizontal" action="" id="form1" method="post">
前台判断编辑
<if condition="empty($members['avatar'])">
<img src="__TMPL__/public/assets/images/headicon_128.png" class="am-circle am-img-thumbnail" width="128"/>
<else/>
<img src="{:cmf_get_user_avatar_url($members['avatar'])}?t={:time()}" class="am-circle am-img-thumbnail" width="128"/>
</if>
或者
<label class="am-radio-inline">
<input type="radio" name="sex" value="1" data-am-ucheck {$members.sex=='0'?'checked':''}> 男
</label>
前台保存修改按钮编辑
<div class="info-btn">
<a class="am-btn am-btn-danger" href="#" onclick="submit()">
保存修改
</a>
</div>
前台js
<block name="js">
<script src="__TMPL__/portal/personal/personal/AmazeUI-2.4.2/assets/js/jquery.min.js" type="text/javascript"></script>
<script src="__TMPL__/portal/personal/personal/js/layer/layer.js" type="text/javascript"></script>
<script>
function submit(){
var area = $("#form1").serialize();
$.post("{:url('portal/Personal/update_information')}", area, function (data) {
// console.log(data);
if (data.code == 1) {
layer.msg(data.msg,{icon:1,time:1000,shade:[0.6,'#000']},function () {
history.go(0);//shaxin
});
}else{
layer.msg(data.msg,{icon:2,time:3000,shade:[0.6,'#000']},function () {
history.go(0);
})
}
}, "json");
}
</script>
</block>
控制器操作
控制器方法命名
控制器方法命名不能有大写字母 否则前置操作失效 (已尝试 ) 可以使用 ‘_’ 隔开
控制器重写方法怎么都行 如果重写方法 请在== $beforeActionList ==中添加上操作方法名
//在控制器 controller中 搜索前置操作 查看定义规则
protected $beforeActionList=[
'check_login'=>['only'=>'index,information,update_information,avatar,contract,cash_withdrawal,remittance,coupon,safety_index,safety_password,safety_change_password,safety_set_pay,safety_bind_phone,safety_id_card'],
];
//修改个人信息
public function update_information(){
//判断是否是 post方式提交数据
if(request()->isPost()){
//接收全部数据
$data=request()->post();
//实例化 Validate 验证 如果需要对应规则 在 validate/PersonalValidate中添加
// 并设置对应场景 scene['场景名'=>'对应规则']
$validate = new PersonalValidate();
//选择对应场景 并判断 正确返回true 错误 返回false
$result=$validate->scene('add')->check($data);
//判断验证是否通过
if($result!==true){
//接收错误信息
$res=$validate->getError();
$this->error($res);
}
//获取当前登录前台用户id
$id=cmf_get_current_user_id();
//更新数据 返回
$res=Db::name('user')->where('id',$id)->update($data);
if ($res!==false){
$this->success('信息更新成功');
}elseif ($res===0){
$this->error('信息未更改');
}else{
$this->error('信息编辑失败');
}
}
}