0

Ich habe dieses Problem bei der Ausführung, view on my localhost die Warnung sagte die Zeile, wo 'k2k1' => (1/$ v-> k1k2) ist Division durch Null. aber ich bin sicher, $ v-> k1k2 ist nicht 0. der Wert ist in, aber es wurde als 0 gelesen. ist da etwas, was ich verpasst habe?ErrorException in Controller Division durch Null in Laravel

das ist mein Controller.

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(); 
    } 
+1

Da es sich um eine Datei, eine der vielen k2k1 Werte sein kann Null, überprüfen Sie alle entsprechenden Spalten. – TheChetan

+0

k2k1 Wert ist 1/k1k2 Wert. Der k1k2-Wert wird eingefügt. eigentlich funktioniert es gut bis vor kurzem es schief geht. habe gerade die Warnung "Division by Zero" bekommen und ich weiß nicht, wo es falsch ist. – Tika

+0

Ich habe dieses Problem gelöst. Wie kann ich diese Frage als gelöst markieren? – Tika

Antwort

0

i fügen Sie diese in meinem Code

if(!empty($value->jenis_perusahaan)) 
{} 

nach foreach, so sieht es aus wie das jetzt,

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[] = [