コード例 #1
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Factors::find();
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     $query->andFilterWhere(['id' => $this->id, 'climate_land' => $this->climate_land, 'climate_accessibility' => $this->climate_accessibility, 'land_accessibility' => $this->land_accessibility, 'bobot_climate' => $this->bobot_climate, 'bobot_land' => $this->bobot_land, 'bobot_accessibility' => $this->bobot_accessibility, 'cr' => $this->cr, 'validation' => $this->validation, 'id_user' => $this->id_user, 'date' => $this->date]);
     return $dataProvider;
 }
コード例 #2
0
 /**
  * Creates a new Factors model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  * @return mixed
  */
 public function actionCreate()
 {
     $model = new Factors();
     if (Yii::$app->request->post()) {
         $climate_land = $_POST['Factors']['climate_land'];
         $land_climate = 1 / $climate_land;
         $climate_climate = 1;
         $land_accessibility = $_POST['Factors']['land_accessibility'];
         $accessibility_land = 1 / $land_accessibility;
         $land_land = 1;
         $climate_accessibility = $_POST['Factors']['climate_accessibility'];
         $accessibility_climate = 1 / $climate_accessibility;
         $accessibility_accessibility = 1;
         $sum_column_climate = $climate_climate + $land_climate + $accessibility_climate;
         $sum_column_land = $climate_land + $land_land + $accessibility_land;
         $sum_column_accessibility = $climate_accessibility + $land_accessibility + $accessibility_accessibility;
         /* ---- */
         $divided_sum_sum = $sum_column_climate / $sum_column_climate;
         $divided_climate_climate_sum = $climate_climate / $sum_column_climate;
         $divided_climate_land_sum = $land_climate / $sum_column_climate;
         $divided_climate_accessibility_sum = $accessibility_climate / $sum_column_climate;
         $divided_land_climate_sum = $climate_land / $sum_column_land;
         $divided_land_land_sum = $land_land / $sum_column_land;
         $divided_land_accessibility_sum = $accessibility_land / $sum_column_land;
         $divided_accessibility_climate_sum = $climate_accessibility / $sum_column_accessibility;
         $divided_accessibility_land_sum = $land_accessibility / $sum_column_accessibility;
         $divided_accessibility_accessibility_sum = $accessibility_accessibility / $sum_column_accessibility;
         /* ---- */
         $sum_climate = $divided_climate_climate_sum + $divided_land_climate_sum + $divided_accessibility_climate_sum;
         $sum_land = $divided_climate_land_sum + $divided_land_land_sum + $divided_accessibility_land_sum;
         $sum_accessibility = $divided_climate_accessibility_sum + $divided_land_accessibility_sum + $divided_accessibility_accessibility_sum;
         $sum_divided = $divided_sum_sum + $divided_sum_sum + $divided_sum_sum;
         /* ---- */
         $bobot_climate = $sum_climate / $sum_divided;
         $bobot_land = $sum_land / $sum_divided;
         $bobot_accessibility = $sum_accessibility / $sum_divided;
         /* ---- */
         /* ---- */
         $multiple_climate_climate_bobot = $climate_climate * $bobot_climate;
         $multiple_climate_land_bobot = $land_climate * $bobot_climate;
         $multiple_climate_accessibility_bobot = $accessibility_climate * $bobot_climate;
         $multiple_land_climate_bobot = $climate_land * $bobot_land;
         $multiple_land_land_bobot = $land_land * $bobot_land;
         $multiple_land_accessibility_bobot = $accessibility_land * $bobot_land;
         $multiple_accessibility_climate_bobot = $climate_accessibility * $bobot_accessibility;
         $multiple_accessibility_land_bobot = $land_accessibility * $bobot_accessibility;
         $multiple_accessibility_accessibility_bobot = $accessibility_accessibility * $bobot_accessibility;
         /* ---- */
         /* ---- */
         $sum_bobot_climate = $multiple_climate_climate_bobot + $multiple_land_climate_bobot + $multiple_accessibility_climate_bobot;
         $sum_bobot_land = $multiple_climate_land_bobot + $multiple_land_land_bobot + $multiple_accessibility_land_bobot;
         $sum_bobot_accessibility = $multiple_climate_accessibility_bobot + $multiple_land_accessibility_bobot + $multiple_accessibility_accessibility_bobot;
         /* ---- */
         $divided_bobot_climate = $sum_bobot_climate / $bobot_climate;
         $divided_bobot_land = $sum_bobot_land / $bobot_land;
         $divided_bobot_accessibility = $sum_bobot_accessibility / $bobot_accessibility;
         /* ---- */
         $lamda_max = ($divided_bobot_climate + $divided_bobot_land + $divided_bobot_accessibility) / $sum_divided;
         $jumlah_factor = $sum_divided;
         $consistensi_index = ($lamda_max - $jumlah_factor) / ($jumlah_factor - 1);
         $rasio_index = 0.58;
         $consistensi_rasio = $consistensi_index / $rasio_index;
         /* ---- */
         if ($consistensi_rasio < 0.1) {
             $validation = TRUE;
         } else {
             $validation = FALSE;
         }
         if (Yii::$app->user->getId()) {
             $_POST['Factors']['climate_land'] = $climate_land;
             $_POST['Factors']['climate_accessibility'] = $climate_accessibility;
             $_POST['Factors']['land_accessibility'] = $land_accessibility;
             $_POST['Factors']['bobot_climate'] = $bobot_climate;
             $_POST['Factors']['bobot_land'] = $bobot_land;
             $_POST['Factors']['bobot_accessibility'] = $bobot_accessibility;
             $_POST['Factors']['cr'] = $consistensi_rasio;
             $_POST['Factors']['validation'] = $validation;
             $_POST['Factors']['id_user'] = Yii::$app->user->getId();
             if ($model->load($_POST) && $model->save()) {
                 $data_factors = Factors::find()->where(['validation' => TRUE])->AsArray()->All();
                 $climate_land_ag_base = [];
                 $climate_accessibility_ag_base = [];
                 $land_accessibility_ag_base = [];
                 $bobot_climate_ag_base = [];
                 $bobot_land_ag_base = [];
                 $bobot_accessibility_ag_base = [];
                 $consistensi_rasio_ag_base = [];
                 for ($i = 0; $i < count($data_factors); $i++) {
                     $climate_land_ag_base[$i] = $data_factors[$i]['climate_land'];
                     $climate_accessibility_ag_base[$i] = $data_factors[$i]['climate_accessibility'];
                     $land_accessibility_ag_base[$i] = $data_factors[$i]['land_accessibility'];
                     // $bobot_climate_ag_base[$i]           = $data_factors[$i]['bobot_climate'];
                     // $bobot_land_ag_base[$i]              = $data_factors[$i]['bobot_land'];
                     // $bobot_accessibility_ag_base[$i]     = $data_factors[$i]['bobot_accessibility'];
                     // $consistensi_rasio_ag_base[$i]       = $data_factors[$i]['cr'];
                 }
                 $climate_land_ag = pow(array_product($climate_land_ag_base), 1 / count($data_factors));
                 $land_climate_ag = 1 / $climate_land_ag;
                 $climate_climate_ag = 1;
                 $climate_accessibility_ag = pow(array_product($climate_accessibility_ag_base), 1 / count($data_factors));
                 $accessibility_climate_ag = 1 / $climate_accessibility_ag;
                 $land_land_ag = 1;
                 $land_accessibility_ag = pow(array_product($land_accessibility_ag_base), 1 / count($data_factors));
                 $accessibility_land_ag = 1 / $land_accessibility_ag;
                 $accessibility_accessibility_ag = 1;
                 // $bobot_climate_ag                        = sqrt (array_product($bobot_climate_ag_base));
                 // $bobot_land_ag                           = sqrt (array_product($bobot_land_ag_base));
                 // $bobot_accessibility_ag                  = sqrt (array_product($bobot_accessibility_ag_base));
                 // $consistensi_rasio_ag                    = sqrt (array_product($consistensi_rasio_ag_base));
                 $sum_column_climate_ag = $climate_climate_ag + $land_climate_ag + $accessibility_climate_ag;
                 $sum_column_land_ag = $climate_land_ag + $land_land_ag + $accessibility_land_ag;
                 $sum_column_accessibility_ag = $climate_accessibility_ag + $land_accessibility_ag + $accessibility_accessibility_ag;
                 /* ---- */
                 $divided_sum_sum_ag = $sum_column_climate_ag / $sum_column_climate_ag;
                 $divided_climate_climate_ag_sum = $climate_climate_ag / $sum_column_climate_ag;
                 $divided_climate_land_ag_sum = $land_climate_ag / $sum_column_climate_ag;
                 $divided_climate_accessibility_ag_sum = $accessibility_climate_ag / $sum_column_climate_ag;
                 $divided_land_climate_ag_sum = $climate_land_ag / $sum_column_land_ag;
                 $divided_land_land_ag_sum = $land_land_ag / $sum_column_land_ag;
                 $divided_land_accessibility_ag_sum = $accessibility_land_ag / $sum_column_land_ag;
                 $divided_accessibility_climate_ag_sum = $climate_accessibility_ag / $sum_column_accessibility_ag;
                 $divided_accessibility_land_ag_sum = $land_accessibility_ag / $sum_column_accessibility_ag;
                 $divided_accessibility_accessibility_ag_sum = $accessibility_accessibility_ag / $sum_column_accessibility_ag;
                 /* ---- */
                 $sum_climate_ag = $divided_climate_climate_ag_sum + $divided_land_climate_ag_sum + $divided_accessibility_climate_ag_sum;
                 $sum_land_ag = $divided_climate_land_ag_sum + $divided_land_land_ag_sum + $divided_accessibility_land_ag_sum;
                 $sum_accessibility_ag = $divided_climate_accessibility_ag_sum + $divided_land_accessibility_ag_sum + $divided_accessibility_accessibility_ag_sum;
                 $sum_divided_ag = $divided_sum_sum_ag + $divided_sum_sum_ag + $divided_sum_sum_ag;
                 /* ---- */
                 $bobot_climate_ag = $sum_climate_ag / $sum_divided_ag;
                 $bobot_land_ag = $sum_land_ag / $sum_divided_ag;
                 $bobot_accessibility_ag = $sum_accessibility_ag / $sum_divided_ag;
                 /* ---- */
                 /* ---- */
                 $multiple_climate_climate_ag_bobot = $climate_climate_ag * $bobot_climate_ag;
                 $multiple_climate_land_ag_bobot = $land_climate_ag * $bobot_climate_ag;
                 $multiple_climate_accessibility_ag_bobot = $accessibility_climate_ag * $bobot_climate_ag;
                 $multiple_land_climate_ag_bobot = $climate_land_ag * $bobot_land_ag;
                 $multiple_land_land_ag_bobot = $land_land_ag * $bobot_land_ag;
                 $multiple_land_accessibility_ag_bobot = $accessibility_land_ag * $bobot_land_ag;
                 $multiple_accessibility_climate_ag_bobot = $climate_accessibility_ag * $bobot_accessibility_ag;
                 $multiple_accessibility_land_ag_bobot = $land_accessibility_ag * $bobot_accessibility_ag;
                 $multiple_accessibility_accessibility_ag_bobot = $accessibility_accessibility_ag * $bobot_accessibility_ag;
                 /* ---- */
                 /* ---- */
                 $sum_bobot_climate_ag = $multiple_climate_climate_ag_bobot + $multiple_land_climate_ag_bobot + $multiple_accessibility_climate_ag_bobot;
                 $sum_bobot_land_ag = $multiple_climate_land_ag_bobot + $multiple_land_land_ag_bobot + $multiple_accessibility_land_ag_bobot;
                 $sum_bobot_accessibility_ag = $multiple_climate_accessibility_ag_bobot + $multiple_land_accessibility_ag_bobot + $multiple_accessibility_accessibility_ag_bobot;
                 /* ---- */
                 $divided_bobot_climate_ag = $sum_bobot_climate_ag / $bobot_climate_ag;
                 $divided_bobot_land_ag = $sum_bobot_land_ag / $bobot_land_ag;
                 $divided_bobot_accessibility_ag = $sum_bobot_accessibility_ag / $bobot_accessibility_ag;
                 /* ---- */
                 $lamda_max_ag = ($divided_bobot_climate_ag + $divided_bobot_land_ag + $divided_bobot_accessibility_ag) / $sum_divided_ag;
                 $jumlah_factor_ag = $sum_divided_ag;
                 $consistensi_index_ag = ($lamda_max_ag - $jumlah_factor_ag) / ($jumlah_factor_ag - 1);
                 $rasio_index_ag = 0.58;
                 $consistensi_rasio_ag = $consistensi_index_ag / $rasio_index_ag;
                 /* ---- */
                 $model_ag = new FactorsAG();
                 $_POSTAG['FactorsAG']['climate_land'] = $climate_land_ag;
                 $_POSTAG['FactorsAG']['climate_accessibility'] = $climate_accessibility_ag;
                 $_POSTAG['FactorsAG']['land_accessibility'] = $land_accessibility_ag;
                 $_POSTAG['FactorsAG']['bobot_climate'] = $bobot_climate_ag;
                 $_POSTAG['FactorsAG']['bobot_land'] = $bobot_land_ag;
                 $_POSTAG['FactorsAG']['bobot_accessibility'] = $bobot_accessibility_ag;
                 $_POSTAG['FactorsAG']['cr'] = $consistensi_rasio_ag;
                 if ($model_ag->load($_POSTAG) && $model_ag->save()) {
                     return $this->redirect(['view', 'id' => $model->id]);
                 } else {
                     return $this->render('create', ['model' => $model]);
                 }
             } else {
                 return $this->render('create', ['model' => $model]);
             }
         } else {
             return $this->render('create', ['model' => $model]);
         }
     } else {
         return $this->render('create', ['model' => $model]);
     }
 }