首页 > 解决方案 > 有数据时axios返回错误状态码500

问题描述

我正在使用Laravel 8,对于我的应用程序VueJSAxios每次我尝试从数据库中获取所有记录时,它都会返回一个状态码为 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());
    }   
}

标签: laravelvue.jsvuexstore

解决方案


问题解决了。

public function fetchAllCourses() {
        try {
            $courses = Course::all()->sortBy('id');
    
            $data = $courses->transform(function ($course) {
                return [
                    'id' => $course->id,
                    'teacher_id' => $course->teacher_id,
                    'teacher' => $this->getTeacherName($course->teacher_id),
                    '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());
        }   
    }

推荐阅读