
Ivan
14.08.2017
23:22:25
Я на bower-asset
Главное что asset-pakagist

Alex
14.08.2017
23:22:41
ну это 100%
просто бовер то умер)

Google

Alex
14.08.2017
23:22:57
типа настоятельно рекомендуют слезть на нпм

Ivan
14.08.2017
23:23:06
Чо, рили умер?

Alex
14.08.2017
23:23:11
угу
сек
https://bower.io/
читай синюю полоску под лого
https://github.com/bower/bower/issues/2298
вот обсуждение

Dmitriy
14.08.2017
23:24:25

Alex
14.08.2017
23:24:46
Ну разница вроде в том как деревья зависимостей строятся
бовер вроде с зависимостями не оч

Ivan
14.08.2017
23:25:42

Alexey
15.08.2017
04:18:21
Ребята, подскажите что я сделал не так
в конфиге адвансед шаблона добавил метку времени последней активности пользователя
'on beforeAction' => function () {
if (!Yii::$app->user->isGuest) {
\common\models\User::updateAll(['last_activity' => time()], ['id' => Yii::$app->user->id]);
}
},
время фиксируется на час больше текущего
на сервере время установлено правильно, если во вьюхе вставить
<?= date('H:i:s') ?>
то время показывает правильное, но в конфиге почему-то на час больше

Google

Alexey
15.08.2017
04:21:05
конфиг фронта, если это имеет значение :)
frontend/config/main.php

M
15.08.2017
04:21:29
Я ещё не работал с тайп хинтов скаляров, но по обсуждениям знаю :D

Alexey
15.08.2017
04:30:45
похоже, что в форматере не верная таймзона
если выводить через форматер, то дата не верная
Yii::$app->formatter->asDatetime($model->last_activity)
если без него, то верно
date('H:i:s', $model->last_activity)
Тогда вопрос как указать таймзону для форматера?
в общем конфиге (common) вписал таймзону, но ничего не изменилось
'formatter' => [
'timeZone' => 'Asia/Omsk',
'dateFormat' => 'dd.MM.yyyy',
'decimalSeparator' => ',',
'thousandSeparator' => ' ',
]
нужно указывать таймзону отдельно для фрона и бэка?


Ruslan
15.08.2017
05:25:44
похоже, что в форматере не верная таймзона
если выводить через форматер, то дата не верная
Yii::$app->formatter->asDatetime($model->last_activity)
если без него, то верно
date('H:i:s', $model->last_activity)
Тогда вопрос как указать таймзону для форматера?
в общем конфиге (common) вписал таймзону, но ничего не изменилось
'formatter' => [
'timeZone' => 'Asia/Omsk',
'dateFormat' => 'dd.MM.yyyy',
'decimalSeparator' => ',',
'thousandSeparator' => ' ',
]
впиши на самом верхнем уровне, не внутри форматтера, а рядом с name и vendorPath

M
15.08.2017
05:27:19
Ребята, я в CSS не умею, правда. Кто в лс может по-братски проконсультировать в двух словах как фичу простую сделать?

Дмитрий
15.08.2017
06:13:13
Если простая - ее легко загуглить
Манов миллион

Maxim
15.08.2017
06:43:01
Привет!
Как сделать правильно
->andWhere('in', 'value', $subQuery)
Пишу вместоу $subQuery
(new Query())->select((new Query())
->select('child_id')
->from('{{%user_parent}}')
->andWhere(['parent_id' => \Yii::$app->user->id])
->union(
(new Query())->select('parent_id')->from('{{%user_parent}}')->andWhere(['parent_id' => \Yii::$app->user->id])
)
и пока не сделаю ->column() - ошибка to be string, object given
А можно ли в этом случае сделать подзапрос, без получения промежуточного результата в виде ключей результата

Vladislav
15.08.2017
06:46:17
https://stackoverflow.com/questions/30164491/yii2-subquery-in-active-record
http://lmgtfy.com/?q=yii2%20in%20sub%20select
тогда вопрос уже другой
попробуй asArray() ипсользоать
получешь ответ в виде массива
его замапь, как тебе надо

Alexey
15.08.2017
06:48:00

Maxim
15.08.2017
06:49:07
@Look_Forward у меня column() возвращает массив. Но при нем у меня 4 заспроса в бд делается. А я хочу один

Google

Vladislav
15.08.2017
06:50:01
пиши raw запросы

Maxim
15.08.2017
06:50:18
это нормально?

Vladislav
15.08.2017
06:50:35
да

Maxim
15.08.2017
06:50:40
Я думал рекомендуется использовать ActiveQuery или Query

Vladislav
15.08.2017
06:50:43
не восем mysqli_query()
а через DbCommand
или как он там
это норма
ActiveQuery/Query шоб чише стандратные были

Maxim
15.08.2017
06:51:11
ok. Спасибо

Vladislav
15.08.2017
06:51:19
а если что-то специфическое, то юзай более подходящие интсрумены
в любом случае, Query внури использует тот же DbCommand

Maxim
15.08.2017
06:52:23
ну это я видел. ok, спасибо

Alexey
15.08.2017
07:04:33
как запретить редактировать атрибут модели по условию?
Если атрибут А === true тогда запретить редактировать атрибут В?

Vladislav
15.08.2017
07:05:07
пиши свой валидатор
или beforeSave переопердели

Alexey
15.08.2017
07:06:36
вот я и хочу написать что-то типа такого
// ['phone', 'skip', 'when' => function ($model) {
// return $model->status === self::STATUS_VERIFIED;
// }]

SiZE
15.08.2017
07:06:58
а что мешает? :)

Alexey
15.08.2017
07:08:01
я не понимаю что должен вернуть мой валидатор, если добавить ошибку в модель, тогда вся модель не сохраняется
было так изначально
['phone', function ($attribute) {
if ($this->status === self::STATUS_VERIFIED) {
$this->addError($attribute, 'Нельзя редактировать подтвержденный телефон.');
}
}]

Google

Alexey
15.08.2017
07:08:39
конечно же так модель вообще не сохраняется

SiZE
15.08.2017
07:08:57
так скип же исключит правило и не кинет ошибку
ну только без 'skip'
just when
http://www.yiiframework.com/doc-2.0/yii-validators-validator.html#$when-detail

Alexey
15.08.2017
07:17:13
так?
['phone', 'when' => function ($model) {
return $model->status !== self::STATUS_VERIFIED;
}]
так ошибка, нужно указать валидатор

SiZE
15.08.2017
07:17:37
очевидно же что нет :)

Alexey
15.08.2017
07:17:51
а какой валидатор использовать чтобы просто скипнулось?

SiZE
15.08.2017
07:18:15
просто удалить phone из rules

Alexey
15.08.2017
07:19:53
а если его удалить, оно всегда будет unsafe и тогда его никогда нельзя будет редактировать, так?

SiZE
15.08.2017
07:20:26
у тебя он сейчас как редактируется то?

Alexey
15.08.2017
07:21:55
телефон можно редактировать до тех пор пока он не подтвержден админом и у этого атрибута в правилах есть 2 валидации - проверка на длину и на то, что оно должно содержать только цифры
я хочу добавить 3 правило, которое запретит редактирование если админ подтверил телефон
что-то заклинило меня на какой-то элементарщине ))
наверное придется в beforeSafe писать условие
или надо тем двум правилам, которые уже есть добавить условие
'when' => function ($model) {
return $model->status !== self::STATUS_VERIFIED;
}

SiZE
15.08.2017
07:31:33
надо тем двум правилам, которые уже есть добавить условие

Alexey
15.08.2017
07:48:32
@sizepermru спасибо :)

Boris
15.08.2017
08:34:12
Ребят, чот не вижу в доке.

Google

Boris
15.08.2017
08:34:23
Как в behaviors анонимку пхнуть?

Maxim
15.08.2017
08:48:39
Делаю запрос
$userData = User::find()->one()
и
$userData = User::find()->with('posts', 'profile', 'settings')->one();
$this->view->params['user'] = $userData;
$this->view->params['post'] = $userData->posts;
$this->view->params['profile'] = $userData->profile;
$this->view->params['settings'] = $userData->settings;
Дебаг показывает, что колличество запросов в BD меньше на 1 с первым вариантом
Как это может быть?
То же если указываю joinWith() - никакого уменьшения колличества запросов

Konstantin
15.08.2017
08:49:33
ты сами запросы смотри

Maxim
15.08.2017
08:49:44
28шт

Konstantin
15.08.2017
08:49:54
может у тебя еще считаются запросы, которые читают метаданные
или еще какая-то байда
ну и что, что 28 штук? :)
но вообще если у тебя ОДИН пользователь...
то with тебе вообще никак не поможет

Maxim
15.08.2017
08:51:35
стандартная байда считается, но их должно быть около 10
Не понимаю почему нет разницы в колличестве запросов после присваивания связанных обектов?

Konstantin
15.08.2017
08:52:03
а ты посмотри на сами запросы
вот если безо всяких with
у тебя есть там запрос SELECT * FROM posts WHERE user_id = X?

Maxim
15.08.2017
08:52:42
А что вот это такое?
SHOW FULL COLUMNS FROM profile

Konstantin
15.08.2017
08:52:55
может у тебя еще считаются запросы, которые читают метаданные
я ж говорю