首頁  >  問答  >  主體

未定義數組索引:is_update

跟著朱老師的影片「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”>


##

<腳本>

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,時間: 2000}, function() {

//取得frame索引

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

#//關閉目前frame

parent.layer.close(index);

});

#} else {

layer.msg(JSON.stringify(data.message) ), {圖示:5,時間:2000});

}

}

});

回傳false;

#});

});


流金岁月流金岁月2340 天前1445

全部回覆(2)我來回復

  • 流金岁月

    流金岁月2018-06-17 11:30:20

    找到出錯原因了,實例在登入時保存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'));

    回覆
    1
  • ringa_lee

    還好你找出原因了,不然這段程式碼要去看半天

    ringa_lee · 2018-06-18 21:50:07
  • 取消回覆