Open bemulima opened 5 years ago
when i try using your example code showing this error: ` PHP Warning – yii\base\ErrorException count(): Parameter must be an array or an object that implements Countable
1. in C:\OSPanel\domains\ad.loc\vendor\mirocow\yii2-yandex-maps\mirocow\yandexmaps\Api.php at line 64 55565758596061626364656667686970717273 /** * Render client scripts. */ public function render() { $this->registerScriptFile(); $this->registerScript(); } protected function encodeArray($array) { return count($array) > 0 ? Json::encode($array) : '{}'; } /** * @todo Add another API params * @see http://api.yandex.ru/maps/doc/jsapi/2.x/dg/concepts/load.xml */ protected function registerScriptFile() { if ('https' !== $this->protocol) { $this->protocol = 'http'; 2. in C:\OSPanel\domains\ad.loc\vendor\mirocow\yii2-yandex-maps\mirocow\yandexmaps\Api.php at line 183 – mirocow\yandexmaps\Api::encodeArray() 177178179180181182183184185186187188189 $js .= "$controls;\n"; } if (count($map->behaviors) > 0) { $behaviors = "\n\$Maps['$id'].behaviors"; foreach ($map->behaviors as $config => $behavior) { $config = $this->encodeArray($config); $behaviors .= "\n\t.$behavior($config)"; } $js .= "$behaviors;\n"; } if (count($map->objects) > 0) { 3. in C:\OSPanel\domains\ad.loc\vendor\mirocow\yii2-yandex-maps\mirocow\yandexmaps\Api.php at line 104 – mirocow\yandexmaps\Api::generateMap() 9899100101102103104105106107108109110 } public function generateObject($object, &$var = null) { $class = get_class($object); $generator = 'generate' . substr($class, strrpos($class, '\\') + 1); if (method_exists($this, $generator)) { $js = $this->$generator($object, $var); if ($object instanceof Interfaces\EventAggregate && count($object->getEvents()) > 0) { if (null !== $var) { $events = "\n$var.events"; foreach ($object->getEvents() as $event => $handle) { $event = Json::encode($event); 4. in C:\OSPanel\domains\ad.loc\vendor\mirocow\yii2-yandex-maps\mirocow\yandexmaps\Api.php at line 92 – mirocow\yandexmaps\Api::generateObject() 86878889909192939495969798 * Register client script. */ protected function registerScript() { $js = "\$Maps = [];\nymaps.ready(function() {\n"; foreach ($this->_objects as $var => $object) { $js .= $this->generateObject($object, $var) . "\n"; } $js .= "});\n"; Yii::$app->view->registerJs($js, View::POS_READY, self::SCRIPT_ID); } 5. in C:\OSPanel\domains\ad.loc\vendor\mirocow\yii2-yandex-maps\mirocow\yandexmaps\Api.php at line 60 – mirocow\yandexmaps\Api::registerScript() 54555657585960616263646566 /** * Render client scripts. */ public function render() { $this->registerScriptFile(); $this->registerScript(); } protected function encodeArray($array) { return count($array) > 0 ? Json::encode($array) : '{}'; } 6. in C:\OSPanel\domains\ad.loc\vendor\mirocow\yii2-yandex-maps\mirocow\yandexmaps\Canvas.php at line 49 – mirocow\yandexmaps\Api::render() 43444546474849505152535455 } public function init() { Event::on(View::className(), View::EVENT_END_PAGE, function ($event) { if (!$this->isRendered) { $this->getApi()->render(); $this->isRendered = true; } }); } /** 7. in C:\OSPanel\domains\ad.loc\vendor\yiisoft\yii2\base\Event.php at line 312 – mirocow\yandexmaps\Canvas::mirocow\yandexmaps\{closure}() 8. in C:\OSPanel\domains\ad.loc\vendor\yiisoft\yii2\base\Event.php at line 312 – call_user_func:{C:\OSPanel\domains\ad.loc\vendor\yiisoft\yii2\base\Event.php:312}() 9. in C:\OSPanel\domains\ad.loc\vendor\yiisoft\yii2\base\Component.php at line 636 – yii\base\Event::trigger() 10. in C:\OSPanel\domains\ad.loc\vendor\yiisoft\yii2\web\View.php at line 174 – yii\web\View::trigger() 11. in C:\OSPanel\domains\ad.loc\frontend\views\layouts\_clear.php at line 24 – yii\web\View::endPage() 18192021222324 <body> <?php $this->beginBody() ?> <?php echo $content ?> <?php $this->endBody() ?> </body> </html> <?php $this->endPage() ?> 12. in C:\OSPanel\domains\ad.loc\vendor\yiisoft\yii2\base\View.php at line 348 13. in C:\OSPanel\domains\ad.loc\vendor\yiisoft\yii2\base\View.php at line 257 – yii\web\View::renderPhpFile() 14. in C:\OSPanel\domains\ad.loc\vendor\yiisoft\yii2\widgets\ContentDecorator.php at line 79 – yii\web\View::renderFile() 15. in C:\OSPanel\domains\ad.loc\vendor\yiisoft\yii2\base\Widget.php at line 109 – yii\widgets\ContentDecorator::run() 16. in C:\OSPanel\domains\ad.loc\vendor\yiisoft\yii2\base\View.php at line 521 – yii\base\Widget::end() 17. in C:\OSPanel\domains\ad.loc\frontend\views\layouts\base.php at line 102 – yii\web\View::endContent() 96979899100101102 <div class="container"> <p class="pull-left">© <?= Yii::$app->name ?> <?php echo date('Y') ?></p> </div> </footer> <?= $this->context->renderPartial('//layouts/_place_modal') ?> <?= SignIn::widget() ?> <?php $this->endContent() ?> 18. in C:\OSPanel\domains\ad.loc\vendor\yiisoft\yii2\base\View.php at line 348 19. in C:\OSPanel\domains\ad.loc\vendor\yiisoft\yii2\base\View.php at line 257 – yii\web\View::renderPhpFile() 20. in C:\OSPanel\domains\ad.loc\vendor\yiisoft\yii2\widgets\ContentDecorator.php at line 79 – yii\web\View::renderFile() 21. in C:\OSPanel\domains\ad.loc\vendor\yiisoft\yii2\base\Widget.php at line 109 – yii\widgets\ContentDecorator::run() 22. in C:\OSPanel\domains\ad.loc\vendor\yiisoft\yii2\base\View.php at line 521 – yii\base\Widget::end() 23. in C:\OSPanel\domains\ad.loc\frontend\views\layouts\main.php at line 37 – yii\web\View::endContent() 31323334353637 ]) ?> <?php echo $content ?> </div> <?php $this->endContent() ?> 24. in C:\OSPanel\domains\ad.loc\vendor\yiisoft\yii2\base\View.php at line 348 25. in C:\OSPanel\domains\ad.loc\vendor\yiisoft\yii2\base\View.php at line 257 – yii\web\View::renderPhpFile() 26. in C:\OSPanel\domains\ad.loc\vendor\yiisoft\yii2\base\Controller.php at line 399 – yii\web\View::renderFile() 27. in C:\OSPanel\domains\ad.loc\vendor\yiisoft\yii2\base\Controller.php at line 385 – frontend\controllers\AdController::renderContent() 28. in C:\OSPanel\domains\ad.loc\frontend\controllers\AdController.php at line 106 – frontend\controllers\AdController::render() 100101102103104105106107108109110111112 'body' => 'Упс! Что-то не так.', 'options' => ['class' => 'alert-error'] ]); } } return $this->render('create', ['model' => $model]); } public function actionView(int $id) { $model = $this->loadModel($id); return $this->render('view', ['model' => $model]); 29. in C:\OSPanel\domains\ad.loc\vendor\yiisoft\yii2\base\InlineAction.php at line 57 – frontend\controllers\AdController::actionCreate() 30. in C:\OSPanel\domains\ad.loc\vendor\yiisoft\yii2\base\InlineAction.php at line 57 – call_user_func_array:{C:\OSPanel\domains\ad.loc\vendor\yiisoft\yii2\base\InlineAction.php:57}() 31. in C:\OSPanel\domains\ad.loc\vendor\yiisoft\yii2\base\Controller.php at line 157 – yii\base\InlineAction::runWithParams() 32. in C:\OSPanel\domains\ad.loc\vendor\yiisoft\yii2\base\Module.php at line 528 – frontend\controllers\AdController::runAction() 33. in C:\OSPanel\domains\ad.loc\vendor\yiisoft\yii2\web\Application.php at line 103 – yii\web\Application::runAction() 34. in C:\OSPanel\domains\ad.loc\vendor\yiisoft\yii2\base\Application.php at line 386 – yii\web\Application::handleRequest() 35. in C:\OSPanel\domains\ad.loc\frontend\web\index.php at line 22 – yii\web\Application::run() 16171819202122 require(__DIR__ . '/../../common/config/base.php'), require(__DIR__ . '/../../common/config/web.php'), require(__DIR__ . '/../config/base.php'), require(__DIR__ . '/../config/web.php') ); (new yii\web\Application($config))->run();
`
when i try using your example code showing this error: ` PHP Warning – yii\base\ErrorException count(): Parameter must be an array or an object that implements Countable
`