我正在尝试更新用户密码,但出现错误。
语法错误或访问冲突:1064您的SQL错误 句法;第1行的“其中
name
为空”(SQL:设置了更新users
name
为空)
控制器
public function passwordupdate(Request $request, $id)
{
$user = User::find($id);
$user->password = Hash::make($request->password);
$user->save();
return response()->json([
'msg' => 'Password has been Updated',
]);
}
路线
Route::post('teachers/policy', 'UsersController@passwordupdate')
从视图中,我正在通过Ajax请求将用户ID和名称发送给控制器。
Ajax
$('.update-password').on('click', function (e) {
let user_id = $('#update-password').val();
console.log('Update password clicked!')
e.preventDefault();
$.ajax({
type: "POST",
dataType: 'json',
data: $(this).serialize(),
url: "/users/" + $('#update-password').attr("value"),
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function (data) {
if (data.msg) {
$('#response').empty();
$(".toast").toast('show');
$('#response').append(data.msg);
}
}
});
});
查看
<form id="password-form">
<input type="hidden" value="">
<table>
<tr>
<td class="text-nowrap">
<select name="name" id="username" class="form-control border border-secondary border-dark" required>
<option selected value="">SELECT USER</option>
@foreach($users as $user)
<option value="{{ $user->name }}"> {{ $user->name }}</option>
@endforeach
</select>
</td>
<td class="text-nowrap">
<input type="text" name="password" placeholder="Type Password"
class="form-control border border-secondary border-dark">
</td>
<td class="text-nowrap">
<button type="submit" class="btn btn-danger btn-sm update-password rounded text-center"
value="{{ $user->id }}" id="update-password">
<span class="fa fa-key"> </span> UPDATE PASSWORD
</button>
</td>
</tr>
</table>
</form>
答案 0 :(得分:0)
您正在访问此端点:
/users/" + $('#update-password').attr("value")
但是此终结点中没有$id
作为url参数,因此您不会检索User
获取当前登录用户详细信息的方法是:
Auth::user()->id;
Auth类将返回您当前登录的用户详细信息
答案 1 :(得分:0)
我认为您应该尝试
$('#update-password').val()
确保将id“ update-password”放置在您的输入类型中[[password]]
希望回答您的问题
答案 2 :(得分:0)
将ID“更新密码”更改为“ update_password”
ID不应包含破折号(-)