Ajax 更新密码时,我在Laravel中遇到错误

Ajax 更新密码时,我在Laravel中遇到错误,ajax,laravel,laravel-6,Ajax,Laravel,Laravel 6,我正在尝试更新用户密码,但出现错误 语法错误或访问冲突:1064您的SQL中有错误 语法;'其中,第1行的“名称为null”SQL:update users set 其中name为null 控制器 公共函数密码更新请求$request,$id { $user=user::find$id; $user->password=Hash::make$request->password; $user->save; 返回响应->json[ 'msg'=>'密码已更新', ]; } 路线 从视图中,我通过Aj

我正在尝试更新用户密码,但出现错误

语法错误或访问冲突:1064您的SQL中有错误 语法;'其中,第1行的“名称为null”SQL:update users set 其中name为null

控制器

公共函数密码更新请求$request,$id { $user=user::find$id; $user->password=Hash::make$request->password; $user->save; 返回响应->json[ 'msg'=>'密码已更新', ]; } 路线

从视图中,我通过Ajax请求将用户id和名称发送给控制器

阿贾克斯

$'.update password'。单击,函数e{ 让用户_id=$'update-password'.val; console.log“已单击更新密码!” e、 防止违约; $.ajax{ 类型:POST,, 数据类型:“json”, 数据:$this.serialize, url:/users/+$'update-password'.attrvalue, 标题:{ 'X-CSRF-TOKEN':$'meta[name=CSRF TOKEN]'。属性'content' }, 成功:函数数据{ if data.msg{ $'response'。空; 美元.吐司.吐司'秀'; $'response'.appenddata.msg; } } }; }; 看法

选择用户 @foreach$users作为$user {{$user->name} @endforeach 更新密码
您正在访问此终结点:

/users/" + $('#update-password').attr("value") 
但此端点中没有$id作为url参数,因此您无法检索用户

获取当前登录用户详细信息的方法是:

Auth::user()->id;

Auth类将返回您当前登录的用户详细信息

我想您应该试试这个

$('#update-password').val()
确保id更新密码位于输入类型[密码]中


希望回答您的问题

将id“更新密码”更改为“更新密码”


id不应包含破折号-

是的,它是正确的显示用户模型您的路线是张贴在/teachers/policy上的,但您的请求是作为张贴发送到/users/{id}@apokryfos的。我更新了路线到/users/{id}仍然是相同的错误我正在尝试以另一个用户的管理员身份更新密码,我从select获得该id。这就是我在控制器中传递id的原因。所以,如果您dd$user,用户结果显示正确?那么问题不在那里,而是在您以前的类中。显示您的完整代码。我添加了有问题的视图,请检查。
$('#update-password').val()