Maison  >  Questions et réponses  >  le corps du texte

Index de tableau non défini : is_update

Suite à la vidéo du professeur Zhu "ThinkPHP5 Rapid Development of Enterprise Sites" pour écrire du code, lors de l'exécution de la page admin_edit, une erreur "index de tableau non défini : is_update" apparaît. Je ne sais pas comment la résoudre, j'aimerais vous le demander. pour de l'aide. Merci!

Code du contrôleur Admin.php :

//Effectuer une opération de mise à jour

mise à jour de la fonction publique (Request $request)

{

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

//Obtenir les données de soumission , filtre automatiquement les valeurs vides

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


//Définir les conditions de mise à jour

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


//Mettre à jour la table utilisateur

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


//Message d'invite pour une mise à jour réussie

$status = 1 ;

$message = 'Mise à jour réussie';


//Si la mise à jour échoue

if (is_null($result)) {

$status = 0;

$message = 'La mise à jour a échoué';

}

}

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

}

admin_edit.html code (la page html a été testée et après suppression du code logique du contrôleur , peut fonctionner normalement) :

{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>Nom de connexion

</label>

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

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

class="layui-input" désactivé>

</div>

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

<span class="x-red">*</span>Le nom d'utilisateur ne peut pas être modifié

</div>

< ;/div>

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

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

<span class=" x -red">*</span>Boîte aux lettres

</label>

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

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

</div>

< ;div class="layui-form-mid layui-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= "mot de passe" requis="" lay-verify="password" autocomplete="off" class="layui-input"

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

</div>

< ;div class="layui-form-mid layui-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-submit lay-filter="save" id= "btnSubmit"> 'forme ', function () {

// $ = layui.jquery;

var form = layui.form;

// ,layer = layui.layer;

//自定义验证规则

form .verify({

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

});

//监听提交

form.on ("submit(save)', function () {

$.ajax({

type : 'POST',

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

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


dataType : "json",

succès : fonction (données) {

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 Il y a quelques jours1417

répondre à tous(2)je répondrai

  • 流金岁月

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

    J'ai trouvé la cause de l'erreur. Le code pour enregistrer la session lors de la connexion est le suivant : //Session::set('user_id', $userName);Session::set('user_info', $data);Le ci-dessus, $data est uniquement Les informations sur le nom d'utilisateur et le mot de passe de l'administrateur n'incluent pas les informations de champ telles que is_update. Je l'ai changé en ceci : //Session::set('user_id', $userName);Session::set('user_info ', $admin); Le bug disparaît. Remarque : modifiez également le contrôleur de base : définir('USER_ID', Session::get('user_info.id'));

    répondre
    1
  • ringa_lee

    Heureusement, vous avez découvert la raison, sinon j'aurais passé beaucoup de temps à lire ce code.

    ringa_lee · 2018-06-18 21:50:07
  • Annulerrépondre