Maison > Questions et réponses > le corps du texte
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位']});//监听提交
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>
流金岁月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'));