跟著朱老師的影片「ThinkPHP5快速開發企業網站」寫程式碼,執行admin_edit頁時,出現「未定義陣列索引:is_update」的錯誤,不知道如何解決,特請教各位,謝謝!
Admin.php控制器程式碼:
//執行更新操作
public function update(Request $request)
{
//更新使用者表
$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位元']
});
##//監聽提交
找到出錯原因了,實例在登入時保存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'));