Heim  >  Fragen und Antworten  >  Hauptteil

Undefinierter Array-Index: is_update

Wenn ich dem Video „ThinkPHP5 Rapid Development of Enterprise Sites“ folge, erscheint beim Ausführen der Seite „admin_edit“ der Fehler „undefinierter Array-Index: is_update“. Ich möchte Sie fragen für Hilfe. Danke!

Admin.php-Controller-Code:

//Aktualisierungsvorgang durchführen

public function update(Request $request)

{

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

//Übermittlungsdaten abrufen , leere Werte automatisch filtern

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


//Aktualisierungsbedingungen festlegen

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


//Benutzertabelle aktualisieren

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


//Eingabeaufforderung für erfolgreiche Aktualisierung

$status = 1 ;

$message = 'Update erfolgreich';


//Wenn das Update fehlschlägt

if (is_null($result)) {

$status = 0;

$message = 'Update fehlgeschlagen';

}

}

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

}

admin_edit.html-Code (die HTML-Seite wurde getestet und nach dem Löschen des Controller-Logikcodes , kann normal ausgeführt werden):

{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>Anmeldename

</label>

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

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

class="layui-input" deaktiviert>

</div>

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

<span class="x-red">*</span>Benutzername kann nicht geändert werden

</div>

< ;/div>

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

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

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

</label>

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

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

</div>

< ;div class="layui-form-midlayui-word-aux">

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

</div>

< /div>

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

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

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

</label>

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

<input type="password" id="password" name= "password" erforderlich=""lay-verify="password" autocomplete="off" class="layui-input"

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

</div>

< ;div class="layui-form-midlayui-word-aux">

6到12个字符

</div>

</div>

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

<input type="hidden" name="id" value="{$Think.session.user_info.id}"lay-filter="id">

<input type="hidden " name="is_update" value="{$Think.session.user_info.is_update}"lay-filter="is_update">


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

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

</label>

<button class="layui-btn"lay-submitlay-filter="save" id= "btnSubmit">

保存

</button>

</div>

</form>

</div>

<script>

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

// $ =layui.jquery;

var form =layui.form;

// ,layer =layui.layer;


//自定义验证规则

form .verify({

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

});


//监听提交

form.on ('submit(save)', 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() {

// 获得frame索引

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

//关闭当前frame

parent.layer.close(index);

});

} else {

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

}

}

});

return false;

});

});

</script>



流金岁月流金岁月2289 Tage vor1418

Antworte allen(2)Ich werde antworten

  • 流金岁月

    流金岁月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'));

    Antwort
    1
  • ringa_lee

    还好你找出原因了,不然这段代码得看半天

    ringa_lee · 2018-06-18 21:50:07
  • StornierenAntwort