【发布时间】:2020-05-28 01:23:57
【问题描述】:
这是我的路线:
// Edit User Infos
Route::put('/edit/subscriber', 'Admin\UserController@editSubscriber')->name('/edit/subscriber');
axios 调用:
axios.put('/admin/edit/subscriber', {
userId: this.userDetails._id,
newFirstName: this.tempValueFirstName,
newLastName: this.tempValueLastName,
newPhone: this.tempValuePhone,
newEmail: this.tempValueEmail
}).then(({res}) => {
console.log(res)
}).catch(({err}) => {
console.log(err)
});
控制器中的更新功能:
public function editSubscriber() {
$validated = request()->validate([
'userId' => 'required',
'newFirstName' => 'required|string|max:255',
'newLastName' => 'required|string|max:255',
'newEmail' => 'required|string|email|max:255',
'newPhone' => 'nullable'
]);
$user = User::find($validated['userId']);
$user->first_name = $validated['newFirstName'];
$user->last_name = $validated['newLastName'];
$user->email = $validated['newEmail'];
$user->phones = $validated['newPhone'];
$user->name = $validated['newLastName'] . ' ' . $validated['newFirstName'];
$user->save();
}
当我尝试使用更新功能时,更改已按我的意愿进行更新,但出现 500 错误:“从空值创建默认对象”。
有人有想法吗? 谢谢。
【问题讨论】:
-
这是因为变量
$user为空,检查$validated['userId']是否不为空并且数据库中存在具有该ID 的用户 -
@V-K $user 和 $validated['userId'] 不为空
-
这是不可能的。此错误指向一个空对象