Vue - Laravel - SPA 500 (внутренняя ошибка сервера) - PullRequest
0 голосов
/ 02 марта 2020

Я не знаю, почему я получаю эту ошибку.

enter image description here

После проверки вкладки сети, она отображается только «сообщение:« Ошибка сервера »

enter image description here

Это происходит только случайным образом при изменении маршрутов и обновлении страницы. Иногда не будет появляться, иногда это будет появляться. Это также происходит с моим другим api с функцией get.

маршрутов. 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))
      },

welcome.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>

хранилище / журналы / laravel (я обрезал его, это # ​​35 строки ошибки)

[2020-03-02 19:59:44] production.ERROR: No application encryption key has been specified. {"exception":"[object] (RuntimeException(code: 0): No application encryption key has been specified. at C:\\laragon\\www\\appraisal\\vendor\\laravel\\framework\\src\\Illuminate\\Encryption\\EncryptionServiceProvider.php:44)
[stacktrace]
#0 C:\\laragon\\www\\appraisal\\vendor\\laravel\\framework\\src\\Illuminate\\Support\\helpers.php(422): Illuminate\\Encryption\\EncryptionServiceProvider->Illuminate\\Encryption\\{closure}(NULL)
#1 C:\\laragon\\www\\appraisal\\vendor\\laravel\\framework\\src\\Illuminate\\Encryption\\EncryptionServiceProvider.php(48): tap(NULL, Object(Closure))

Ответы [ 2 ]

0 голосов
/ 02 марта 2020

Я думаю, что это решает все. php artisan config:cache

Источник: https://github.com/laravel/framework/issues/25964

Кто-нибудь может объяснить это решение?

0 голосов
/ 02 марта 2020

Как вы получили этот запрос и что вы пытаетесь сделать? Метод with() предназначен для быстрой загрузки отношений модели. Кроме того, ', ' в середине является совершенно недействительным. Как и должно быть массив отношений ИЛИ одна строка для отношения.

$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(). Кроме того, у вас есть двоеточия, почему?

Кроме того, если я прав, вы можете немедленно вернуть результат запроса. Не нужно вызывать метод ответа, так как он автоматически JSONify вашего результата при возврате.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...