2017-09-18 4 views
0

je $_GET['pro_id'] varible dans mon contrôleur et je l'ai appelé en vue, mais il y a une erreur en disant queyii2 ne reconnaît pas la obtenir la variable

« Undefined index: pro_id » dans C: \ xampp \ htdocs \ reserve \ controllers \ SiteController.php.

ici est mon sitecontroller.php

public function actionIndex() 

    { 

     if(!($_GET['pro_id']> 0)) $_GET['pro_id'] = 1; 

     switch ($_GET['pro_id']) { 
      case 1: 
       $query1 = "select T1.dist_dis_id dis_id, T1.dist_name, ifnull(T2.stor_weight, 0) sum_weight from (select dist_dis_id, dist_name from district_trans where dist_lang_id = 1 order by dist_name) T1 left join (select stor_dis_id, sum(stor_weight) stor_weight from storage where stor_year = ".date("Y")." group by stor_dis_id)T2 on T1.dist_dis_id = T2.stor_dis_id"; 
       $query2 = "select T0.sect_name, T0.sect_sec_id, ifnull(T1.stor_weight,0) sum_weight from 
        (SELECT sect_name, sect_sec_id FROM `section_trans` WHERE sect_lang_id = 1)T0 
        left join 
        (SELECT stor_sec_id, sum(stor_weight) stor_weight FROM `storage` WHERE stor_year =".date("Y")." group by stor_sec_id)T1 
        on 
        T0.sect_sec_id = T1.stor_sec_id"; 
       break; 
      case 2: 
       $query1 = "select T1.dist_dis_id dis_id, T1.dist_name, ifnull(T2.er_land_area, 0) sum_weight from (select dist_dis_id, dist_name from district_trans where dist_lang_id = 1 order by dist_name) T1 left join (select er_dis_id, sum(er_land_area) er_land_area from `erf` where er_year = ".date("Y")." group by er_dis_id)T2 on T1.dist_dis_id = T2.er_dis_id"; 
       $query2 = "select T0.sect_name, T0.sect_sec_id, ifnull(T1.er_land_area,0) sum_weight from 
        (SELECT sect_name, sect_sec_id FROM `section_trans` WHERE sect_lang_id = 1)T0 
        left join 
        (SELECT er_sec_id, sum(er_land_area) er_land_area FROM `erf` WHERE er_year =".date("Y")." group by er_sec_id)T1 
        on 
        T0.sect_sec_id = T1.er_sec_id"; 
       break; 
      case 3: 
       $query1 = "select T1.dist_dis_id dis_id, T1.dist_name, ifnull(T2.pl_weight, 0) sum_weight from (select dist_dis_id, dist_name from district_trans where dist_lang_id = 1 order by dist_name) T1 left join (select pl_dis_id, sum(pl_weight) pl_weight from `plan` where pl_year = ".date("Y")." group by pl_dis_id)T2 on T1.dist_dis_id = T2.pl_dis_id"; 
       $query2 = "select T0.sect_name, T0.sect_sec_id, ifnull(T1.pl_weight,0) sum_weight from 
        (SELECT sect_name, sect_sec_id FROM `section_trans` WHERE sect_lang_id = 1)T0 
        left join 
        (SELECT pl_sec_id, sum(pl_weight) pl_weight FROM `plan` WHERE pl_year =".date("Y")." group by pl_sec_id)T1 
        on 
        T0.sect_sec_id = T1.pl_sec_id"; 
       break; 
     } 

     $arrayByDistrict = Yii::$app->getDb()->createCommand($query1)->queryAll(); 
     $arrayBySection = Yii::$app->getDb()->createCommand($query2)->queryAll(); 
     return $this->render('index', [ 
      'arrayByDistrict' => $arrayByDistrict, 
      'arrayBySection' => $arrayBySection, 
     ]); 
    } 

et ici voir fichier où j'ai appelé que $_get['pro_id']

switch ($_GET['pro_id']) { 
    case 2: $text = "Экилган";break; 
    case 3: $text = "Кутилаётган";break; 
    default: $text = "Сақланаётган";break; 
} 
+0

vous avez l'erreur dans la vue ou dans le contrôleur? – scaisEdge

+0

Postez la chaîne de requête s'il vous plaît. – mega6382

Répondre

0

pourrait être vous devriez vérifier si est réglé le _GET $ ('pro_id') avant accéder à la valeur .. pourriez-vous ne pas avoir assigné les valeurs correctement avant d'appeler le contrôleur/action

if (isset(($_GET['pro_id'])) { 
    if(!($_GET['pro_id']> 0)) $_GET['pro_id'] = 1; 

    ..... 


} else { 

// $_GET(['pro_id'] is not set 
} 

Une autre option est que les valeurs sont envoyées à l'aide après alors essayez

if (isset(($_POST['pro_id'])) { 
    if(!($_POST['pro_id']> 0)) $_POST['pro_id'] = 1; 
    ...... 
+0

il n'a pas aidé bro malheureusement, plus alternative? –

+0

Impossible de vérifier si un $ _GET ['pro_id'] existe .... Êtes-vous sûr d'utiliser une méthode GET et non un POST? – scaisEdge

+0

Je pense que c'est obtenir ou pourrait-il être aussi poster? –