未定义数组索引:is_update
流金岁月
流金岁月 2018-06-16 22:03:27
0
2
1416

跟着朱老师的视频“ThinkPHP5快速开发企业站点”写代码,运行admin_edit页时,出现“未定义数组索引:is_update”的错误,不知道如何解决,特请教各位,谢谢!

Admin.php控制器代码:

//执行更新操作

public function update(Request $request)

{

if ($request->isAjax(true)) {

//获取提交的数据,自动过滤空值

$data = array_filter($request->param());


//设置更新条件

$where = ['is_update' => $data['is_update']];


//更新用户表

$result = AdminModel::update($data, $where);


//更新成功的提示信息

$status = 1;

$message = '更新成功';


//如果更新失败

if (is_null($result)) {

$status = 0;

$message = '更新失败';

}

}

return ['status' => $status, 'message' => $message];

}

admin_edit.html代码(html页面经测试,删除控制器逻辑代码后,能正常运行):

{layout name="public/layout" /}


<div class="x-body">

<form class="layui-form">

<div class="layui-form-item">

<label for="username" class="layui-form-label">

<span class="x-red">*</span>登录名

</label>

<div class="layui-input-inline">

<input type="text" id="username" name="username" required="" lay-verify="required" autocomplete="off" value="{$admin.username}"

class="layui-input" disabled>

</div>

<div class="layui-form-mid layui-word-aux">

<span class="x-red">*</span>用户名不可修改

</div>

</div>

<div class="layui-form-item">

<label for="L_email" class="layui-form-label">

<span class="x-red">*</span>邮箱

</label>

<div class="layui-input-inline">

<input type="text" value="{$admin.email}" id="email" name="email" required="" lay-verify="email" autocomplete="off" class="layui-input">

</div>

<div class="layui-form-mid layui-word-aux">

<span class="x-red">*</span>

</div>

</div>

<span class="x-red">*</span>新密码

</label>

<div class="layui-input-inline “>

<输入类型=“密码”id=“密码”名称=“密码”必需=“”lay-verify=“密码”自动完成=“关闭”类=“layui-input”

value="123456" placeholder="密码">

6到12个字符

</div>

</div>

<!--添加隐藏字段-->

<输入类型=“隐藏”名称=“id”值=“{$Think.session.user_info.id}”lay-filter=“id”>

<输入类型=“隐藏”名称=“is_update”值=“{$Think.session.user_info.is_update}”lay-filter=“is_update”>


< ;/label>

<脚本>

layui.use('form', function () {

// $ =layui.jquery;

var form =layui.form;

/ / ,layer =layui.layer;


#//自定义验证规则

form.verify({

password: [/ (.+){6,12}$/, '密码必须6到12位']

});


##//监听提交

form.on('提交(保存)', function () {

$.ajax({

type: 'POST',

url : "{:url('admin/update')}",

data: $(".layui-form").serialize(),

dataType: "json",

success: function (data) {

if (data.status == 1) {

layer.msg(JSON.stringify(data.message), {icon: 6,time:2000}, function() {

//获得frameIndex

var index =parent.layer.getFrameIndex(window.name);

//关闭当前帧

parent.layer.close(index);

});

} else {

layer.msg(JSON.stringify( data.message), {icon:5,time:2000});

}

}

});

return false;

});

});



#

流金岁月
流金岁月

全部回复(1)
流金岁月

找到出错原因了,实例在登录时保存Session的代码是这样的://Session::set('user_id', $userName);Session::set('user_info', $data);上面的$data只有admin的用户名和密码信息,并不包含is_update等字段信息,我将它改成这样://Session::set('user_id', $userName);Session::set('user_info', $admin);Bug消失。注:Base控制器也改一下:define('USER_ID', Session::get('user_info.id'));

  • 回复 还好你找出原因了,不然这段代码得看半天
    ringa_lee 作者 2018-06-18 21:50:07
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!