Laravel 中控制器除以零的 ErrorException
ErrorException in controller division by zero in Laravel
我在执行的时候遇到了这个问题,view on my localhost
警告说 'k2k1'=>(1/$v->k1k2) 被零除的行。但我确定 $v->k1k2 不是 0。该值在但被读取为 0。
我错过了什么吗?
这是我的控制器。
public function importFile()
{
if(Input::hasFile('import_file')){
$path = Input::file('import_file')->getRealPath();
$data = Excel::load($path, function($reader){ })->get();
if(!empty($data) && $data->count()){
foreach($data as $key => $v){
$insert[] = [
'jenis_perusahaan'=>$v->jenis_perusahaan,
'k1k1'=>1,
'k1k2'=>$v->k1k2, 'k1k3'=>$v->k1k3, 'k1k4'=>$v->k1k4,
'k1k5'=>$v->k1k5, 'k1k6'=>$v->k1k6, 'k1k7'=>$v->k1k7,
//here----> 'k2k1'=>(1/$v->k1k2), 'k2k2'=>1, 'k2k3'=>$v->k2k3, 'k2k4'=>$v->k2k4,
'k2k5'=>$v->k2k5, 'k2k6'=>$v->k2k6, 'k2k7'=>$v->k2k7,
'k3k1'=>(1/$v->k1k3), 'k3k2'=>(1/$v->k2k3), 'k3k3'=>1, 'k3k4'=>$v->k3k4,
'k3k5'=>$v->k3k5, 'k3k6'=>$v->k3k6, 'k3k7'=>$v->k3k7,
'k4k1'=>(1/$v->k1k4), 'k4k2'=>(1/$v->k2k4), 'k4k3'=>(1/$v->k3k4), 'k4k4'=>1,
'k4k5'=>$v->k4k5, 'k4k6'=>$v->k4k6, 'k4k7'=>$v->k4k7,
'k5k1'=>(1/$v->k1k5), 'k5k2'=>(1/$v->k2k5), 'k5k3'=>(1/$v->k3k5), 'k5k4'=>(1/$v->k4k5),
'k5k5'=>1, 'k5k6'=>$v->k5k6, 'k5k7'=>$v->k5k7,
'k6k1'=>(1/$v->k1k6), 'k6k2'=>(1/$v->k2k6), 'k6k3'=>(1/$v->k3k6), 'k6k4'=>(1/$v->k4k6),
'k6k5'=>(1/$v->k5k6), 'k6k6'=>1, 'k6k7'=>$v->k6k7,
'k7k1'=>(1/$v->k1k7), 'k7k2'=>(1/$v->k2k7), 'k7k3'=>(1/$v->k3k7), 'k7k4'=>(1/$v->k4k7),
'k7k5'=>(1/$v->k5k7), 'k7k6'=>(1/$v->k6k7), 'k7k7' => 1
];
//Menghitung Total Kolom Matrik
$sum1 = (1 + (1/$v->k1k2) + (1/$v->k1k3) + (1/$v->k1k4) + (1/$v->k1k5) + (1/$v->k1k6) + (1/$v->k1k7) );
$sum2 = ( $v->k1k2 + 1 + (1/$v->k2k3) + (1/$v->k2k4) + (1/$v->k2k5) + (1/$v->k2k6) + (1/$v->k2k7) );
$sum3 = ( $v->k1k3 + $v->k2k3 + 1 + (1/$v->k3k4) + (1/$v->k3k5) + (1/$v->k3k6) + (1/$v->k3k7) );
$sum4 = ( $v->k1k4 + $v->k2k4 + $v->k3k4 + 1 + (1/$v->k4k5) + (1/$v->k4k6) + (1/$v->k4k7) );
$sum5 = ( $v->k1k5 + $v->k2k5 + $v->k3k5 + $v->k4k5 + 1 + (1/$v->k5k6) + (1/$v->k5k7));
$sum6 = ( $v->k1k6 + $v->k2k6 + $v->k3k6 + $v->k4k6 + $v->k5k6 + 1 + (1/$v->k6k7) );
$sum7 = ( $v->k1k7 + $v->k2k7 + $v->k3k7 + $v->k4k7 + $v->k5k7 + $v->k6k7 + 1);
//Nilai setiap matrik dibagi dengan total kolomnya
$k1k1=(1/$sum1); $k1k2=($v->k1k2/$sum2); $k1k3=($v->k1k3/$sum3); $k1k4=($v->k1k4/$sum4); $k1k5=($v->k1k5/$sum5); $k1k6=($v->k1k6/$sum6); $k1k7=($v->k1k7/$sum7);
$k2k1=((1/$v->k1k2)/$sum1); $k2k2=(1/$sum2); $k2k3=($v->k2k3/$sum3); $k2k4=($v->k2k4/$sum4); $k2k5=($v->k2k5/$sum5); $k2k6=($v->k2k6/$sum6); $k2k7=($v->k2k7/$sum7);
$k3k1=((1/$v->k1k3)/$sum1); $k3k2=((1/$v->k2k3)/$sum2); $k3k3=(1/$sum3); $k3k4=($v->k3k4/$sum4); $k3k5=($v->k3k5/$sum5); $k3k6=($v->k3k6/$sum6); $k3k7=($v->k3k7/$sum7);
$k4k1=((1/$v->k1k4)/$sum1); $k4k2=((1/$v->k2k4)/$sum2); $k4k3=((1/$v->k3k4)/$sum3); $k4k4=(1/$sum4); $k4k5=($v->k4k5/$sum5); $k4k6=($v->k4k6/$sum6); $k4k7=($v->k4k7/$sum7);
$k5k1=((1/$v->k1k5)/$sum1); $k5k2=((1/$v->k2k5)/$sum2); $k5k3=((1/$v->k3k5)/$sum3); $k5k4=((1/$v->k4k5)/$sum4); $k5k5=(1/$sum5); $k5k6=($v->k5k6/$sum6); $k5k7=($v->k5k7/$sum7);
$k6k1=((1/$v->k1k6)/$sum1); $k6k2=((1/$v->k2k6)/$sum2); $k6k3=((1/$v->k3k6)/$sum3); $k6k4=((1/$v->k4k6)/$sum4); $k6k5=((1/$v->k5k6)/$sum5); $k6k6=(1/$sum6); $k6k7=($v->k6k7/$sum7);
$k7k1=((1/$v->k1k7)/$sum1); $k7k2=((1/$v->k2k7)/$sum2); $k7k3=((1/$v->k3k7)/$sum4); $k7k4=((1/$v->k4k7)/$sum4); $k7k5=((1/$v->k5k7)/$sum5); $k7k6=((1/$v->k6k7)/$sum6); $k7k7=(1/$sum7);
//Menghitung jumlah total baris
$totalbaris1 =($k1k1+$k1k2+$k1k3+$k1k4+$k1k5+$k1k6+$k1k7);
$totalbaris2 =($k2k1+$k2k2+$k2k3+$k2k4+$k2k5+$k2k6+$k2k7);
$totalbaris3 =($k3k1+$k3k2+$k3k3+$k3k4+$k3k5+$k3k6+$k3k7);
$totalbaris4 =($k4k1+$k4k2+$k4k3+$k4k4+$k4k5+$k4k6+$k4k7);
$totalbaris5 =($k5k1+$k5k2+$k5k3+$k5k4+$k5k5+$k5k6+$k5k7);
$totalbaris6 =($k6k1+$k6k2+$k6k3+$k6k4+$k6k5+$k6k6+$k6k7);
$totalbaris7 =($k7k1+$k7k2+$k7k3+$k7k4+$k7k5+$k7k6+$k7k7);
//Rata-rata dari jumlah total baris adalah Vektor Prioritas (vp)
$vp1 = ($totalbaris1/7);
$vp2 = ($totalbaris2/7);
$vp3 = ($totalbaris3/7);
$vp4 = ($totalbaris4/7);
$vp5 = ($totalbaris5/7);
$vp6 = ($totalbaris6/7);
$vp7 = ($totalbaris7/7);
//Hasil perkalian matrik dengan vektor prioritas adalah Vektor Jumlah Bobot(vjb)
$vjb1 = ( (1*$vp1)+($v->k1k2*$vp2)+($v->k1k3*$vp3)+($v->k1k4*$vp4)+($v->k1k5*$vp5)+($v->k1k6*$vp6)+($v->k1k7*$vp7) );
$vjb2 = ( ((1/$v->k1k2)*$vp1)+(1*$vp2)+($v->k2k3*$vp3)+($v->k2k4*$vp4)+($v->k2k5*$vp5)+($v->k2k6*$vp6)+($v->k2k7*$vp7) );
$vjb3 = ( ((1/$v->k1k3)*$vp1)+((1/$v->k2k3)*$vp2)+(1*$vp3)+($v->k3k4*$vp4)+($v->k3k5*$vp5)+($v->k3k6*$vp6)+($v->k3k7*$vp7) );
$vjb4 = ( ((1/$v->k1k4)*$vp1)+((1/$v->k2k4)*$vp2)+((1/$v->k3k4)*$vp3)+(1*$vp4)+($v->k4k5*$vp5)+($v->k4k6*$vp6)+($v->k4k7*$vp7) );
$vjb5 = ( ((1/$v->k1k5)*$vp1)+((1/$v->k2k5)*$vp2)+((1/$v->k3k5)*$vp3)+((1/$v->k4k5)*$vp4)+(1*$vp5)+($v->k5k6*$vp6)+($v->k5k7*$vp7) );
$vjb6 = ( ((1/$v->k1k6)*$vp1)+((1/$v->k2k6)*$vp2)+((1/$v->k3k6)*$vp3)+((1/$v->k4k6)*$vp4)+((1/$v->k5k6)*$vp5)+(1*$vp6)+($v->k6k7*$vp7) );
$vjb7 = ( ((1/$v->k1k7)*$vp1)+((1/$v->k2k7)*$vp2)+((1/$v->k3k7)*$vp3)+((1/$v->k4k7)*$vp4)+((1/$v->k5k7)*$vp5)+((1/$v->k6k7)*$vp6)+(1*$vp7) );
//Nilai Vektor Jumlah Bobot dibagi dengan nilai vektor prioritasnya menghasilkan Bobot Prioritas(BP)
$bp1 = ($vjb1/$vp1);
$bp2 = ($vjb2/$vp2);
$bp3 = ($vjb3/$vp3);
$bp4 = ($vjb4/$vp4);
$bp5 = ($vjb5/$vp5);
$bp6 = ($vjb6/$vp6);
$bp7 = ($vjb7/$vp7);
//Menghitung Lamda Maks
$lmaks = (($bp1+$bp2+$bp3+$bp4+$bp5+$bp6+$bp7)/7);
//Menghitung Consistency Index
$n = 7;
$ci = ( ($lmaks-$n)/($n-1) );
//Menghitung Consistency Ratio
$ri = 1.320;
$cr = $ci/$ri;
}
}
if($cr <= 0.10){
if(!empty($insert)){
DB::table('matrikkriterias')->insert($insert);
return back()
->withSuccess('Matrik Konsisten! Data Disimpan');
}
}else{
dd('nilai CR anda '.$cr.' Matrik Tidak KOnsisten! Silahkan ulangi pengisian matrik anda!');
return back();
}
}
return back();
}
我在我的代码中添加了这个
if(!empty($value->jenis_perusahaan))
{}
在 foreach 之后,现在看起来像这样,
public function importFile()
{
if(Input::hasFile('import_file')){
$path = Input::file('import_file')->getRealPath();
$data = Excel::load($path, function($reader) {
})->get();
if(!empty($data) && $data->count()){
foreach ($data as $key => $value) {
if(!empty($value->jenis_perusahaan))
{
$insert[] = [
我在执行的时候遇到了这个问题,view on my localhost 警告说 'k2k1'=>(1/$v->k1k2) 被零除的行。但我确定 $v->k1k2 不是 0。该值在但被读取为 0。 我错过了什么吗?
这是我的控制器。
public function importFile()
{
if(Input::hasFile('import_file')){
$path = Input::file('import_file')->getRealPath();
$data = Excel::load($path, function($reader){ })->get();
if(!empty($data) && $data->count()){
foreach($data as $key => $v){
$insert[] = [
'jenis_perusahaan'=>$v->jenis_perusahaan,
'k1k1'=>1,
'k1k2'=>$v->k1k2, 'k1k3'=>$v->k1k3, 'k1k4'=>$v->k1k4,
'k1k5'=>$v->k1k5, 'k1k6'=>$v->k1k6, 'k1k7'=>$v->k1k7,
//here----> 'k2k1'=>(1/$v->k1k2), 'k2k2'=>1, 'k2k3'=>$v->k2k3, 'k2k4'=>$v->k2k4,
'k2k5'=>$v->k2k5, 'k2k6'=>$v->k2k6, 'k2k7'=>$v->k2k7,
'k3k1'=>(1/$v->k1k3), 'k3k2'=>(1/$v->k2k3), 'k3k3'=>1, 'k3k4'=>$v->k3k4,
'k3k5'=>$v->k3k5, 'k3k6'=>$v->k3k6, 'k3k7'=>$v->k3k7,
'k4k1'=>(1/$v->k1k4), 'k4k2'=>(1/$v->k2k4), 'k4k3'=>(1/$v->k3k4), 'k4k4'=>1,
'k4k5'=>$v->k4k5, 'k4k6'=>$v->k4k6, 'k4k7'=>$v->k4k7,
'k5k1'=>(1/$v->k1k5), 'k5k2'=>(1/$v->k2k5), 'k5k3'=>(1/$v->k3k5), 'k5k4'=>(1/$v->k4k5),
'k5k5'=>1, 'k5k6'=>$v->k5k6, 'k5k7'=>$v->k5k7,
'k6k1'=>(1/$v->k1k6), 'k6k2'=>(1/$v->k2k6), 'k6k3'=>(1/$v->k3k6), 'k6k4'=>(1/$v->k4k6),
'k6k5'=>(1/$v->k5k6), 'k6k6'=>1, 'k6k7'=>$v->k6k7,
'k7k1'=>(1/$v->k1k7), 'k7k2'=>(1/$v->k2k7), 'k7k3'=>(1/$v->k3k7), 'k7k4'=>(1/$v->k4k7),
'k7k5'=>(1/$v->k5k7), 'k7k6'=>(1/$v->k6k7), 'k7k7' => 1
];
//Menghitung Total Kolom Matrik
$sum1 = (1 + (1/$v->k1k2) + (1/$v->k1k3) + (1/$v->k1k4) + (1/$v->k1k5) + (1/$v->k1k6) + (1/$v->k1k7) );
$sum2 = ( $v->k1k2 + 1 + (1/$v->k2k3) + (1/$v->k2k4) + (1/$v->k2k5) + (1/$v->k2k6) + (1/$v->k2k7) );
$sum3 = ( $v->k1k3 + $v->k2k3 + 1 + (1/$v->k3k4) + (1/$v->k3k5) + (1/$v->k3k6) + (1/$v->k3k7) );
$sum4 = ( $v->k1k4 + $v->k2k4 + $v->k3k4 + 1 + (1/$v->k4k5) + (1/$v->k4k6) + (1/$v->k4k7) );
$sum5 = ( $v->k1k5 + $v->k2k5 + $v->k3k5 + $v->k4k5 + 1 + (1/$v->k5k6) + (1/$v->k5k7));
$sum6 = ( $v->k1k6 + $v->k2k6 + $v->k3k6 + $v->k4k6 + $v->k5k6 + 1 + (1/$v->k6k7) );
$sum7 = ( $v->k1k7 + $v->k2k7 + $v->k3k7 + $v->k4k7 + $v->k5k7 + $v->k6k7 + 1);
//Nilai setiap matrik dibagi dengan total kolomnya
$k1k1=(1/$sum1); $k1k2=($v->k1k2/$sum2); $k1k3=($v->k1k3/$sum3); $k1k4=($v->k1k4/$sum4); $k1k5=($v->k1k5/$sum5); $k1k6=($v->k1k6/$sum6); $k1k7=($v->k1k7/$sum7);
$k2k1=((1/$v->k1k2)/$sum1); $k2k2=(1/$sum2); $k2k3=($v->k2k3/$sum3); $k2k4=($v->k2k4/$sum4); $k2k5=($v->k2k5/$sum5); $k2k6=($v->k2k6/$sum6); $k2k7=($v->k2k7/$sum7);
$k3k1=((1/$v->k1k3)/$sum1); $k3k2=((1/$v->k2k3)/$sum2); $k3k3=(1/$sum3); $k3k4=($v->k3k4/$sum4); $k3k5=($v->k3k5/$sum5); $k3k6=($v->k3k6/$sum6); $k3k7=($v->k3k7/$sum7);
$k4k1=((1/$v->k1k4)/$sum1); $k4k2=((1/$v->k2k4)/$sum2); $k4k3=((1/$v->k3k4)/$sum3); $k4k4=(1/$sum4); $k4k5=($v->k4k5/$sum5); $k4k6=($v->k4k6/$sum6); $k4k7=($v->k4k7/$sum7);
$k5k1=((1/$v->k1k5)/$sum1); $k5k2=((1/$v->k2k5)/$sum2); $k5k3=((1/$v->k3k5)/$sum3); $k5k4=((1/$v->k4k5)/$sum4); $k5k5=(1/$sum5); $k5k6=($v->k5k6/$sum6); $k5k7=($v->k5k7/$sum7);
$k6k1=((1/$v->k1k6)/$sum1); $k6k2=((1/$v->k2k6)/$sum2); $k6k3=((1/$v->k3k6)/$sum3); $k6k4=((1/$v->k4k6)/$sum4); $k6k5=((1/$v->k5k6)/$sum5); $k6k6=(1/$sum6); $k6k7=($v->k6k7/$sum7);
$k7k1=((1/$v->k1k7)/$sum1); $k7k2=((1/$v->k2k7)/$sum2); $k7k3=((1/$v->k3k7)/$sum4); $k7k4=((1/$v->k4k7)/$sum4); $k7k5=((1/$v->k5k7)/$sum5); $k7k6=((1/$v->k6k7)/$sum6); $k7k7=(1/$sum7);
//Menghitung jumlah total baris
$totalbaris1 =($k1k1+$k1k2+$k1k3+$k1k4+$k1k5+$k1k6+$k1k7);
$totalbaris2 =($k2k1+$k2k2+$k2k3+$k2k4+$k2k5+$k2k6+$k2k7);
$totalbaris3 =($k3k1+$k3k2+$k3k3+$k3k4+$k3k5+$k3k6+$k3k7);
$totalbaris4 =($k4k1+$k4k2+$k4k3+$k4k4+$k4k5+$k4k6+$k4k7);
$totalbaris5 =($k5k1+$k5k2+$k5k3+$k5k4+$k5k5+$k5k6+$k5k7);
$totalbaris6 =($k6k1+$k6k2+$k6k3+$k6k4+$k6k5+$k6k6+$k6k7);
$totalbaris7 =($k7k1+$k7k2+$k7k3+$k7k4+$k7k5+$k7k6+$k7k7);
//Rata-rata dari jumlah total baris adalah Vektor Prioritas (vp)
$vp1 = ($totalbaris1/7);
$vp2 = ($totalbaris2/7);
$vp3 = ($totalbaris3/7);
$vp4 = ($totalbaris4/7);
$vp5 = ($totalbaris5/7);
$vp6 = ($totalbaris6/7);
$vp7 = ($totalbaris7/7);
//Hasil perkalian matrik dengan vektor prioritas adalah Vektor Jumlah Bobot(vjb)
$vjb1 = ( (1*$vp1)+($v->k1k2*$vp2)+($v->k1k3*$vp3)+($v->k1k4*$vp4)+($v->k1k5*$vp5)+($v->k1k6*$vp6)+($v->k1k7*$vp7) );
$vjb2 = ( ((1/$v->k1k2)*$vp1)+(1*$vp2)+($v->k2k3*$vp3)+($v->k2k4*$vp4)+($v->k2k5*$vp5)+($v->k2k6*$vp6)+($v->k2k7*$vp7) );
$vjb3 = ( ((1/$v->k1k3)*$vp1)+((1/$v->k2k3)*$vp2)+(1*$vp3)+($v->k3k4*$vp4)+($v->k3k5*$vp5)+($v->k3k6*$vp6)+($v->k3k7*$vp7) );
$vjb4 = ( ((1/$v->k1k4)*$vp1)+((1/$v->k2k4)*$vp2)+((1/$v->k3k4)*$vp3)+(1*$vp4)+($v->k4k5*$vp5)+($v->k4k6*$vp6)+($v->k4k7*$vp7) );
$vjb5 = ( ((1/$v->k1k5)*$vp1)+((1/$v->k2k5)*$vp2)+((1/$v->k3k5)*$vp3)+((1/$v->k4k5)*$vp4)+(1*$vp5)+($v->k5k6*$vp6)+($v->k5k7*$vp7) );
$vjb6 = ( ((1/$v->k1k6)*$vp1)+((1/$v->k2k6)*$vp2)+((1/$v->k3k6)*$vp3)+((1/$v->k4k6)*$vp4)+((1/$v->k5k6)*$vp5)+(1*$vp6)+($v->k6k7*$vp7) );
$vjb7 = ( ((1/$v->k1k7)*$vp1)+((1/$v->k2k7)*$vp2)+((1/$v->k3k7)*$vp3)+((1/$v->k4k7)*$vp4)+((1/$v->k5k7)*$vp5)+((1/$v->k6k7)*$vp6)+(1*$vp7) );
//Nilai Vektor Jumlah Bobot dibagi dengan nilai vektor prioritasnya menghasilkan Bobot Prioritas(BP)
$bp1 = ($vjb1/$vp1);
$bp2 = ($vjb2/$vp2);
$bp3 = ($vjb3/$vp3);
$bp4 = ($vjb4/$vp4);
$bp5 = ($vjb5/$vp5);
$bp6 = ($vjb6/$vp6);
$bp7 = ($vjb7/$vp7);
//Menghitung Lamda Maks
$lmaks = (($bp1+$bp2+$bp3+$bp4+$bp5+$bp6+$bp7)/7);
//Menghitung Consistency Index
$n = 7;
$ci = ( ($lmaks-$n)/($n-1) );
//Menghitung Consistency Ratio
$ri = 1.320;
$cr = $ci/$ri;
}
}
if($cr <= 0.10){
if(!empty($insert)){
DB::table('matrikkriterias')->insert($insert);
return back()
->withSuccess('Matrik Konsisten! Data Disimpan');
}
}else{
dd('nilai CR anda '.$cr.' Matrik Tidak KOnsisten! Silahkan ulangi pengisian matrik anda!');
return back();
}
}
return back();
}
我在我的代码中添加了这个
if(!empty($value->jenis_perusahaan))
{}
在 foreach 之后,现在看起来像这样,
public function importFile()
{
if(Input::hasFile('import_file')){
$path = Input::file('import_file')->getRealPath();
$data = Excel::load($path, function($reader) {
})->get();
if(!empty($data) && $data->count()){
foreach ($data as $key => $value) {
if(!empty($value->jenis_perusahaan))
{
$insert[] = [