【发布时间】:2021-09-28 11:05:41
【问题描述】:
我在我的应用程序中使用Laravel 8、VueJS 和Axios,然后每次我尝试从我的数据库中获取所有记录时,它都会返回一个状态码为 500 的错误。即使使用 Postman/ 获取数据时Insomnia 它返回的数据没有错误。
我试图清空它获取数据的表,但错误消失了,它返回状态码为 200 的空数据。
商店模块:
import axios from 'axios'
export default {
namespaced: true,
state: {
courses: [],
teacher: '',
},
getters: {
allCourses(state) {
return state.courses
},
},
actions: {
async fetchAllCourses({ commit }) {
const response = await axios.get('teacher/course-management/list')
console.log(response.data.data)
commit('SET_COURSES', response.data.data)
}
},
mutations: {
SET_COURSES(state, courses) {
state.courses = courses
}
}
控制器:
public function fetchAllCourses() {
try {
$courses = Course::all()->sortBy('id');
$data = $courses->transform(function ($course) {
// ! Get teacher id
$teacherId = $this->user->teacher->id;
// ! Get teacher name by id
$teacherName = $this->getTeacherName($teacherId);
return [
'id' => $course->id,
'teacher_id' => $course->teacher_id,
'teacher' => $teacherName,
'section' => $course->section,
'code' => $course->code,
'status' => $course->status,
'image' => $course->image,
];
});
return $this->success('Request success', $data);
} catch (\Exception $e) {
return $this->error($e->getMessage(), $e->getCode());
}
}
【问题讨论】:
-
服务器端设置了 HTTP 错误 500。使用 chrome devs 工具检查来自您网页的请求是否与您在 Postman 中的请求完全匹配。您缺少的查询很可能存在差异。
-
你在实际 JSON 之前返回和数组
-
@OMiShah 我有一个成功特征方法,可以将我的响应数据转换为 json
-
@OMiShah
return [...]在transform回调中。那不是控制器方法的返回值 -
你的 Laravel 日志对错误有什么看法?