Yii2

Codeception и Yii2 -- установка и использование (команды создания тестов)

Установка "вручную"

Для начала убедитесь что кодэспешн у вас установлен или сами установите его.

И выполните в корне проекта команду изначальной настройки (с учетом псевдонима):

cept bootstrap

-- создаст необходимые файлы и папки в директории test/

php Indirect modification of overloaded property ... has no effect -- Ошибка при работе с виртуальными свойствами (часто в MVC)

Indirect modification of overloaded property ... has no effect

В моем случае я пытаюсь записать значение в массив.

Причина

Скорее всего вы пишити что-то вроде:

$this->report_ids[] = $report->_id; // добавляем в массив

но при этом у вас нет реального поля report_ids, а используются магические методы _set и _get
-- поэтому когда вы пишите так как выше обращение вида:

yii2 mongodb ActiveRecord Сортировка

По-идее так же как и в любой эктиврекорд:

$sort = 'ASC';
$reports = Report::find()
		->where(['in', '_id', $this->report_ids])
		->orderBy("creation_data $sort")
		->all();

yii2 commad -- переделать запрос из лога в формат mongodb. Изменение формата

Руками можно по такому принципу -- из:

ИМЯБАЗЫ.command(
{"aggregate":"ИМЯКОЛЛЕКЦИИ",
	"pipeline":[	
        {"$limit":5}
	],
    "allowDiskUse":true,
	"cursor":{"batchSize":1000}
})

в:

db.ИМЯКОЛЛЕКЦИИ.aggregate([
	{"$limit":5}
],
{"allowDiskUse":true,"cursor":{"batchSize":50000}}
)

TypeError: jQuery(...).yiiActiveForm is not a function yii2 -- jquery подлючается дважды

TypeError: jQuery(...).yiiActiveForm is not a function

-- если вы используете разные версии jquery или просто нестандартную,
то возможно у вас файл jquery подключился дважды.

yii2 RBAC проверка доступа к маршутру по ролям - -не работает хотя есть разрешающее правило

Замечено на практике (не точно):
Если одной роли пользователя назначить два permision-а, которым назначены разные правила, но один и тот же маршрут, то при автоматической проверки доступа к данному маршруту, будут вызываться все назначенные пользователю permision-ы и выполняться их правила, и если одно выполнится отрицательно, то доступа не будет/

yii2 Установка пакетов bower через композер (composer)

Чтобы установить через композер какой-либо пакет менеджера bower, делаем следующее:

  1. Пусть имя нашего пакет в bower выглядит как:
    amcharts3-tools
  2. Тогда в composer.json используем в качестве имени разработчика стандартное имя (фиксированное для любого bower-пакета):
    bower-asset

    так что полное имя нашего пакета будет выглядеть в рассматриваемом примере как:

yii2 mongodb $cursor->toArray Работает слишком медленно -- как ускорить выборку больших объёмов данных из mongo в проложение

Вызов типа:

$cursor = \Yii::$app->mongodb->createCommand(\Yii::$app->mongodb->getQueryBuilder()->aggregate(
		$collection->name, $pipeline, 
		['allowDiskUse' => true, 'cursor' => ['batchSize' => $this->batchSize]]))->execute();

$resultArray = $cursor->toArray();

-- практически все время при большой выборке потратит на вызов toArray(), и это будет проходить медленно.

Итерируемся сами

Можно итерироваться по курсору, без вызова toArray(), но даже пустая итерация типа:

yii2 Calling unknown method: ...Controller::redirect() -- не работает редирект в контроллере.

В Yii2 метод redirect() работает так:

return Yii::$app->response->redirect(['site/view']);

Как метод класса Controller почему-то НЕ работает:

return $this->redirect(['site/view']);

yii2 подключить ресурсы - assets - (JS, CSS) в проекте

Подключать ресурсы

в проекте с помощью Yii2 можно с помощью класса AppAsset (extends AssetBundle) или классов, унаследованных от него.
Подробнее о нём можно прочитать в документации к Yii2, конкретно здесь. Или посмотреть видео пример.

Pages

Subscribe to RSS - Yii2