gpt4 book ai didi

php - Laravel 本地主机工作,但 heroku 给出 500 错误

转载 作者:可可西里 更新时间:2023-11-01 13:36:16 25 4
gpt4 key购买 nike

我在一个需要将一些数据从 excel 转换到数据库的项目中工作。这在使用 laravel 的本地主机上工作正常,但是当转到 heroku 时,它给了我一个 500 内部服务器错误。

我在 heroku 中搜索可能是什么的东西,然后我发现 heroku 的数据库有 2 个从请求中插入的值。所以这意味着代码循环了两次,但随后发生了错误。

找了4个小时代码中的错误,也没找到是怎么回事...

代码如下:

public function insertFromExcel(){

$excel = new \Maatwebsite\Excel\Facades\Excel();

$data = $excel::load('../../../excel_files/relacao_5.xls', function ($reader) {

})->get();

foreach ($data as $row) {


//-----------------------------------------Verifica Setor-------------------------------------

if(isset($row['nome_setor'])){
$setor_id = DB::table('setor')->where('nome', '=', $row['nome_setor'])->pluck('id');

if ($setor_id == null) {
$setor_id = DB::table('setor')->insertGetId([
'nome' => $row['nome_setor']
]);
}
}
else{
$setor_id = null;
}

//-----------------------------------------Verifica Funcionario--------------------------------

$funcionario_id = DB::table('funcionario')->where('matricula', '=', $row['codfun'])->pluck('id');



if ($funcionario_id === null) {
$funcionario_id = DB::table('funcionario')->insertGetId([
'nome' => $row['nome_func'],
'matricula' => $row['codfun'],
'pis_pasep' => $row['pis_pasep'],
'data_admisao' => $row['admissao'],
'setor_id' => $setor_id
]);
}
else{

$funcionario_pis_pasep = DB::table('funcionario')->where('matricula', '=', $row['codfun'])->pluck('pis_pasep');

if($funcionario_pis_pasep == null || $funcionario_pis_pasep == 0){
DB::table('funcionario')
->where('id', $funcionario_id)
->update([
'pis_pasep' => $row['pis_pasep']
]);
}



$funcionario_setor = DB::table('funcionario')->where('matricula', '=', $row['codfun'])->pluck('setor_id');

if($funcionario_setor == null){
DB::table('funcionario')
->where('id', $funcionario_id)
->update([
'setor_id' => $setor_id
]);
}
}


//-----------------------------------------Verifica Cargos--------------------------------

if (strpos($row['descrnivcarg'], "GERENTE") !== false) {

$gerente = DB::table('gerente')
->join('funcionario', 'gerente.funcionario_id', '=', 'funcionario.id')
->where('funcionario.id', '=', $funcionario_id)
->pluck('gerente.id');

if ($gerente == null) {
$user_id = DB::table('usuario')->insertGetId(['senha' => '12345', 'nivel' => 3]);

DB::table('gerente')->insert([
'funcionario_id' => $funcionario_id,
'usuario_id' => $user_id
]);
}
}
if (strpos($row['descrnivcarg'], "COORDENADOR") !== false) {

$coordenador = DB::table('coordenador')
->join('funcionario', 'coordenador.funcionario_id', '=', 'funcionario.id')
->where('funcionario.id', '=', $funcionario_id)
->pluck('coordenador.id');

if ($coordenador == null) {
$user_id = DB::table('usuario')->insertGetId(['senha' => '12345']);

DB::table('coordenador')->insert([
'funcionario_id' => $funcionario_id,
'usuario_id' => $user_id
]);
}
}
if (strpos($row['descrnivcarg'], "SUPERVISOR") !== false) {

$supervisor = DB::table('supervisor')
->join('funcionario', 'supervisor.funcionario_id', '=', 'funcionario.id')
->where('funcionario.id', '=', $funcionario_id)
->pluck('supervisor.id');

if ($supervisor == null) {
$user_id = DB::table('usuario')->insertGetId(['senha' => '12345', 'nivel' => 2]);

DB::table('supervisor')->insert([
'funcionario_id' => $funcionario_id,
'usuario_id' => $user_id
]);
}
}
if (strpos($row['descrnivcarg'], "ESTAGIARIO") !== false) {

$estagiario = DB::table('estagiario')
->join('funcionario', 'estagiario.funcionario_id', '=', 'funcionario.id')
->where('funcionario.id', '=', $funcionario_id)
->pluck('estagiario.id');

if ($estagiario == null) {
$user_id = DB::table('usuario')->insertGetId(['senha' => '12345', 'nivel' => 1]);

DB::table('estagiario')->insert([
'funcionario_id' => $funcionario_id,
'usuario_id' => $user_id
]);
}
} else {
$cargo_id = DB::table('cargo')->where('nome', '=', $row['descrnivcarg'])->pluck('id');

if ($cargo_id == null) {
$cargo_id = DB::table('cargo')->insertGetId(['nome' => $row['descrnivcarg']]);
}


$operario = DB::table('operario')
->join('funcionario', 'operario.funcionario_id', '=', 'funcionario.id')
->where('operario.id', '=', $funcionario_id)
->pluck('operario.id');

if ($operario == null) {

DB::table('operario')->insert([
'funcionario_id' => $funcionario_id,
'cargo_id' => $cargo_id,
]);
}
}
}

$funcionario_db[] = DB::table('funcionario')->select('matricula', 'nome', 'data_admisao', 'pis_pasep')->get();

return $funcionario_db;

}

最佳答案

使用以下命令在 heroku 中设置 2 个配置变量:

1 heroku 配置:设置 APP_DEBUG=true
2 heroku config:set APP_KEY=RandomString

设置这些键后,您将能够看到实际错误,而不是一般的 500。

关于php - Laravel 本地主机工作,但 heroku 给出 500 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31665706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com