【发布时间】:2019-12-04 08:24:57
【问题描述】:
我正在尝试更新用户密码,但出现错误。
语法错误或访问冲突:1064 您的 SQL 中有错误 句法; '其中
name为空' 在第 1 行(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>
【问题讨论】:
-
是的,没错
-
显示用户模型
-
您的路线是在
/teachers/policy上的 POST,但您的请求作为 POST 发送到/users/{id} -
@apokryfos 我更新了到 /users/{id} 的路由仍然是同样的错误