[英]PUT request won't get ID of the record in Vue.js with Laravel
我正在尝试在 Laravel 中使用 Vue.js 制作一个 CRUD 项目,并且在最后一步编辑中我成功了。 但我被困在其中。
我正在尝试使用相同的表单来编辑我也用于创建的表单。 一种形式,两种任务。
我得到的唯一错误是PUT http://localhost:8000/api/student/undefined 404 (Not Found) ,是的,我无法将 ID(或模型?)传递给 Axios。
我认为我的路由,Laravel 端的控制器没问题,但我无法将编辑记录的当前 ID 传递给 Axios。 另外,我没有在表单上输入任何 ID。 这可能是原因。
我要编辑的 Vue 代码
addStudent(student, id) {
if(this.edit === false){
axios.post(`api/students/create`, {
first_name:this.first_name,
last_name:this.last_name,
student_number:this.student_number,
phone_number:this.phone_number,
email:this.email,
birth_date:this.birth_date,
school_name:this.school_name,
});
} else {
axios.put(`api/student/`+this.id, {
first_name:this.first_name,
last_name:this.last_name,
student_number:this.student_number,
phone_number:this.phone_number,
email:this.email,
birth_date:this.birth_date,
school_name:this.school_name,
});
}
},
我的路线(在 api.php 中)
Route::put('student/{id}', 'StudentController@update');
我的控制器
public function update(Request $request, $id)
{
$student = Student::findOrFail($id);
$student->first_name = $request->get('first_name');
$student->last_name = $request->get('last_name');
$student->student_number = $request->get('student_number');
$student->phone_number = $request->get('phone_number');
$student->first_name = $request->get('email');
$student->email = $request->get('first_name');
$student->birth_date = $request->get('birth_date');
$student->school_name = $request->get('school_name');
$student->save;
return redirect('/');
表单操作
<form @submit.prevent="addStudent()">
我需要完成这件事,我需要任何我能得到的帮助。 谢谢
Javascript 不理解 PUT 请求,它将它作为 put 请求发送但没有主体(您只能像 get 方法结构一样使用它)。 为了解决这个问题,你需要将它作为一个带有字段_method = put
的 POST 请求发送给 Laravel 以将其视为一个 put 调用
addStudent(student) {
if(this.edit === false){
axios.post(`api/students/create`, {
first_name:this.first_name,
last_name:this.last_name,
student_number:this.student_number,
phone_number:this.phone_number,
email:this.email,
birth_date:this.birth_date,
school_name:this.school_name,
});
} else {
axios.post(`api/student/`+this.id, {
_method:'PUT',
first_name:this.first_name,
last_name:this.last_name,
student_number:this.student_number,
phone_number:this.phone_number,
email:this.email,
birth_date:this.birth_date,
school_name:this.school_name,
});
}
},
删除this
, id
是本地变量
axios.put(`api/student/`+id, {
first_name:this.first_name,
last_name:this.last_name,
student_number:this.student_number,
phone_number:this.phone_number,
email:this.email,
birth_date:this.birth_date,
school_name:this.school_name,
});
注意:由于您的 r 使用
findOrFail()
,您会收到 404 错误
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.