Vue-Laravel-SPA 500(内部服务器错误)

Vue-Laravel-SPA 500(内部服务器错误),laravel,vue.js,Laravel,Vue.js,我不知道为什么会出现这个错误 检查网络选项卡后,它仅显示“消息:“服务器错误” 这仅在更改路由和刷新页面时随机发生。有时它不会出现,有时它会出现。我的另一个api使用get函数时也会出现这种情况 routes.js { path: '/', redirect: '/dashboard', component: () => import('@/views/BaseView'), meta: { requiresAuth: true }, c

我不知道为什么会出现这个错误

检查网络选项卡后,它仅显示“消息:“服务器错误”

这仅在更改路由和刷新页面时随机发生。有时它不会出现,有时它会出现。我的另一个
api
使用
get
函数时也会出现这种情况

routes.js

  { 
    path: '/', 
    redirect: '/dashboard',
    component: () => import('@/views/BaseView'),
    meta: { requiresAuth: true },
    children: [
      { 
        path: '/dashboard', 
        name: 'dashboard', 
        component: () => import('@/views/Dashboard'),
      },
      { 
        path: 'objective/employee/:id', 
        name: 'employee-objective', 
        component: () => import('@/views/employee-objective/index'),
      },
    ]
  },
api

Route::middleware('auth:api')->group(function () {
  Route::get('user', function (Request $request) {
    return $request->user();
  });
  Route::get('employee-objectives', 'EmployeeObjectiveController@objectives');
});
laravel控制器

  public function objectives(Request $request) {
    $get = EmployeeObjective::with('corporateObjective:id,corporate_objective,corporate_objective_description', 
    'employeeObjectiveKpa:id,employee_objective_id,department_objective_id,kpa_info,kpi_info,kpi_progress,kpa_weight,kpa_score_1,kpa_equal,created_at')
    ->where('employee_id', $request->employee_id)
    ->first();
    return response()->json($get);
  }
组件.vue

 created() {
      setTimeout(() => {
        this.$store.state.loading = false;
      },1000);
      this.getEmployeeObjectiveKPA()
    },

 methods: {
      getEmployeeObjectiveKPA() {
        axios.get('/api/employee-objectives', { 
          params: { employee_id: this.$store.state.authUser.employee_id } 
        })
        .then(response => {
          if (response.data.employee_objective_kpa !== undefined) {
            this.employee_objective_kpa = response.data.employee_objective_kpa
          }
        })
        .catch(error => console.log(error))
      },
欢迎使用.blade.php

 <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui">

        <title>Appraisal</title>

        <meta name="csrf-token" content="{{ csrf_token() }}">
    <script>window.Laravel = { csrfToken: '{{ csrf_token() }}' }</script>

  </head>

您是如何得到此查询的?您想做什么? <代码>() >方法是急于加载模型关系,中间的<代码>,非常无效。因为它应该是一组关系或一个关系的单个字符串。

$get = EmployeeObjective::with('corporateObjective:id,corporate_objective,corporate_objective_description', 
'employeeObjectiveKpa:id,employee_objective_id,department_objective_id,kpa_info,kpi_info,kpi_progress,kpa_weight,kpa_score_1,kpa_equal,created_at')
这些仅仅是EmployeeObjective的属性吗?请使用
select()
。此外,您在其中有冒号,为什么


另外,如果我是正确的,您可以立即返回查询结果。无需调用response方法,因为它将在返回结果时自动对您的结果进行JSONify处理。

我认为这解决了所有问题。
php artisan config:cache

资料来源:


有人能解释这个解决方案吗?

你有没有检查服务器端日志,看看是否有异常被抛出?我会在你的
.env
文件中启用调试模式,以便你能看到错误。我的
.env
已经设置为
APP\u debug=true
,但我不确定如何使用它。你能提供更多信息吗信息,例如您的Laravel和Vue路由是如何设置的?Hello@tamrat请查看我编辑的帖子。问题似乎在Laravel一侧,可能会重新检查查询执行情况?请检查
与('relationship:column',relationship:column)的使用情况
,这是关系模型的属性/列。我只是尝试加载获取数据所需的列,从而降低了数据的大小。大约减少了400kb(但我不确定这是否真的会影响用户的总体加载)。噢,我现在要删除json,谢谢。啊,我明白了,这里有点误读了文档。无论如何,也许可以将它包装在一个数组中。像这样:
with(['corporateObjective:id,corporate_objective,corporate_objective_description','employeeObjectiveKpa:id,employee_objective_id,department_objective_id,kpa_信息,kpi_信息,kpi_进度,kpa_权重,kpa_得分_1,kpa_相等,创建于']
如果仍然不起作用,请添加您的员工目标型号代码:)哦,您是否包含关系的id和外键?根据文档:
使用此功能时,您应该始终在您希望检索的列列表中包含id列和任何相关外键列。
是的,我已经管理好了d包含关系模型的
id
外键
。在
[]
中添加
with()
之后,现在很少出现错误,尽管它可能是巧合(就像我说的,这个错误只是偶尔突然出现)。感谢您的帮助。我仍将尝试更多次刷新我的组件。Ohhhhh这是一个非常简单的修复方法。您没有用于cookie加密的加密密钥集。请在根目录中运行
php artisan key:generate
。这将在
.env
文件中设置
APP_key
值,并应进行修复问题!
$get = EmployeeObjective::with('corporateObjective:id,corporate_objective,corporate_objective_description', 
'employeeObjectiveKpa:id,employee_objective_id,department_objective_id,kpa_info,kpi_info,kpi_progress,kpa_weight,kpa_score_1,kpa_equal,created_at')