当前位置: 首页>>代码示例>>PHP>>正文


PHP Proc::SetSessionValuesFromAR方法代码示例

本文整理汇总了PHP中app\func\Proc::SetSessionValuesFromAR方法的典型用法代码示例。如果您正苦于以下问题:PHP Proc::SetSessionValuesFromAR方法的具体用法?PHP Proc::SetSessionValuesFromAR怎么用?PHP Proc::SetSessionValuesFromAR使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在app\func\Proc的用法示例。


在下文中一共展示了Proc::SetSessionValuesFromAR方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: actionCreate

 public function actionCreate()
 {
     $model = new TrOsnov();
     $Mattraffic = new Mattraffic();
     $Material = new Material();
     $Employee = new Employee();
     $mattraffic_number_max = NULL;
     // Если форма отправлена на сервер, получаем выбранную материальную ценность
     $id_mattraffic = isset(Yii::$app->request->post('TrOsnov')['id_mattraffic']) ? Yii::$app->request->post('TrOsnov')['id_mattraffic'] : '';
     $transaction = Yii::$app->db->beginTransaction();
     try {
         // Если форма отправлена на сервер, то создать запись перемещения мат цен-ти в mattraffic
         if (!empty($id_mattraffic)) {
             $Mattrafficcurrent = Mattraffic::findOne($id_mattraffic);
             $Mattraffic->attributes = $Mattrafficcurrent->attributes;
             $Mattraffic->mattraffic_date = date('Y-m-d');
             $Mattraffic->mattraffic_number = isset(Yii::$app->request->post('Mattraffic')['mattraffic_number']) ? Yii::$app->request->post('Mattraffic')['mattraffic_number'] : NULL;
             $Mattraffic->mattraffic_tip = 3;
             if (isset($Mattraffic->scenarios()['traffic'])) {
                 $Mattraffic->scenario = 'traffic';
             }
             if ($Mattraffic->validate()) {
                 $Mattraffic->save(false);
                 $model->id_mattraffic = $Mattraffic->mattraffic_id;
             }
             //Акт установки уже создан и берется из URL параметра
             $model->id_installakt = (string) filter_input(INPUT_GET, 'idinstallakt');
             //Сохраняем кабинет в модель из отправленной формы
             $model->tr_osnov_kab = isset(Yii::$app->request->post('TrOsnov')['tr_osnov_kab']) ? Yii::$app->request->post('TrOsnov')['tr_osnov_kab'] : NULL;
         }
         // Сохраняем модель с отправленными данными и сохраненным mattraffic
         if (!$Mattraffic->isNewRecord && $model->save()) {
             $transaction->commit();
             return $this->redirect(Proc::GetPreviousURLBreadcrumbsFromSession());
         } else {
             // иначе
             // Берет значение сначала из справочника (посредством перехода на страницу выбора), если нет, то вытаскивает из сессии (для простого обновления страницы)
             // выводит $PreviusBC - для последующей передачи в функцию Proc::SetSessionValuesFromAR, т.е. установить в последнюю сессию или предыдущую (хлебных крошек)
             $PreviusBC = Proc::GetValueForFillARs($id_mattraffic, 'TrOsnov', 'id_mattraffic');
             // Очистить ошибку id_mattraffic, если есть ошибка по mattraffic_number (Превышено допустимое кол-во для перемещения матер. цен-ти)
             //if (isset($Mattraffic->errors['mattraffic_number']))
             //    $model->clearErrors('id_mattraffic');
             // Если выбрана мат. цен-ть, то заполнить информацию для отображения на форме по мат. цен-ти и МОЛ
             if (!empty($id_mattraffic)) {
                 $Material = Material::find()->joinWith('mattraffics')->where(['mattraffic_id' => $id_mattraffic])->one();
                 $Employee = Employee::find()->joinWith('mattraffics')->where(['mattraffic_id' => $id_mattraffic])->one();
                 // GetMaxNumberMattrafficForInstallAkt - Определяем максимально допустимое кол-во материала для перемещения (Общее кол-во материала минус уже перемещенное кол-во)
                 $mattraffic_number_max = 'Не более ' . doubleval(Mattraffic::GetMaxNumberMattrafficForInstallAkt($id_mattraffic));
                 // Сохраняем модель мат. цен-ти и МОЛ'а в сессию (т.к. эти модели только для отображения)
                 Proc::SetSessionValuesFromAR($Material, $PreviusBC);
                 Proc::SetSessionValuesFromAR($Employee, $PreviusBC);
             }
             // Откатываем транзакцию
             $transaction->rollBack();
             return $this->render('create', ['model' => $model, 'Mattraffic' => $Mattraffic, 'Material' => $Material, 'Employee' => $Employee, 'mattraffic_number_max' => $mattraffic_number_max]);
         }
     } catch (Exception $e) {
         $transaction->rollBack();
         throw new Exception($e->getMessage());
     }
 }
开发者ID:vovancho,项目名称:yii2test,代码行数:61,代码来源:TrOsnovController.php


注:本文中的app\func\Proc::SetSessionValuesFromAR方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。