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')