Задать вопрос
Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (5)

Лучшие ответы пользователя

Все ответы (14)
  • Ребята нужна помощь, с выводом данных из MySQL, PHP?

    @dimabdc
    В запросе не указана таблица
    FROM table?
    Ответ написан
    Комментировать
  • Со временем перестает работать парсер на PHP?

    @dimabdc
    Посмотрите логах ошибок, если есть что-то подобное:
    Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 54 bytes)

    то поставьте:
    ini_set('memory_limit', '-1');
    Ответ написан
    Комментировать
  • Составить регулярное вырадение?

    @dimabdc
    preg_match("/test\.phone = '(\w+)'/ui", $page)
    Полезный ресурс для составления регулярок: https://regex101.com/
    Ответ написан
    2 комментария
  • Как упростить функции контроллера?

    @dimabdc
    Можно (и нужно) выделять одинаковые куски кода в отдельные функции:
    /**
         * view Month
         */
        public function actionMonth()
        {
            $rangeData = $this->_getDateRange();
    
            return $this->render('month', [
                'result' => $this->_getSheel(),
                'firstDay' => $rangeData['firstDay'],
            ]);
    
        }
    
        /**
         * view Company
         */
        public function actionCompany()
        {
            $company =$_GET['company']; // с 1 месяца по 12
            $rangeData = $this->_getDateRange();
    
            //  VarDumper::dump($res);
            return $this->render('company', [
                // 'materials' => $materials,
                'company' => $company,
                'result' => $this->_getSheel('parent_company', $company),
                'firstDay' => $rangeData['firstDay'],
            ]);
    
        }
        
        /**
         *
         * view Address
         */
        public function actionAddress()
        {
            $company =$_GET['id'];
            $addreses =  Sheel::findAll(['id_sheel' => $company]);
            foreach ($addreses as $key=>$one){
                $addres = $one->address;
            };
            $rangeData = $this->_getDateRange();
    
            return $this->render('address', [
                'result' => $result,
                'firstDay' => $rangeData['firstDay'],
            ]);
    
        }
    
        /**
         * Get date range
         * 
         * @return array
         */
        protected function _getDateRange()
        {
            $month = date('n', $_GET['time']); // с 1 месяца по 12
            $year = date('Y', $_GET['time']); // 2011
    
            return [
                'firstDay' => date("Y-m-d", mktime(0, 0, 0, $month, 1, $year)),
                'lastDay' => date("Y-m-d", mktime(0, 0, 0, $month + 1, 1, $year))
            ];
        }
    
        /**
         * Get sheel
         * 
         * @param mixed $name
         * @param mixed $value
         * @return ArrayDataProvider
         */
        protected function _getSheel($name = null, $value = null)
        {
            $rangeData = $this->_getDateRange();
    
            $params = [
                ':time1' => $rangeData['firstDay'],
                ':time2' => $rangeData['lastDay'],
            ];
            $where = 'date_execution >= :time1 AND date_execution < :time2';
    
            if ($name) {
                $where .= " AND :$name = :name";
                $params[":$name"] = $value;
            }
    
            $customers = Sheel::find()
                ->andWhere($where, $params)
                ->orderBy('date_execution DESC')
                ->joinWith('recipies')
                ->with('company')
                ->all();
            $res = [];
            foreach ($customers as &$item) {
                $res[] = [
                    'id_sheel'=>$item->id_sheel,
                    'parent_recipies'=>$item->parent_recipies,
                    'id_company'=>$item->company->id_company,
                    'name_company' => $item->company->name_company,
                    'address' => $item->address,
                    'recipies' =>
                        $item->recipies->porous_recipies . " " .
                        $item->recipies->size_min . " " .
                        $item->recipies->type_recipies . " " .
                        $item->recipies->brand_recipies . " " .
                        "№ " . $item->recipies->number_recipies,
                    'amount_sheel' => $item->amount_sheel,
                    'date_execution' => $item->date_execution,
                ];
            }
            return new ArrayDataProvider(['allModels' => $res]);
        }
    Ответ написан
    Комментировать