
Crestoff
19.05.2018
16:54:50
если делаю один name

R
19.05.2018
16:55:25
Покажи уже всю строку где ты делаешь select

Максим
19.05.2018
16:56:35

Crestoff
19.05.2018
16:56:56
так тоже самое

Google

Crestoff
19.05.2018
16:57:18
return $this
->select([
'ad_campaign.id',
'ad_type_id',
'ad_banner_format.name AS banner_format', 'traffic_test_percent',
'traffic_test_period',
'default_return_url',
'cdn_id',
'js_file_name',
])
->joinWith(['domains', 'cdn', 'adBannerFormat'])
->FilterWhere([
'domain_id' => $domain_id,
'ad_type_id' => $ad_type,
'id' => $ad_campaign_id,
])
->active()
->all();

Maxim
19.05.2018
16:58:17
так у тебя и ->active() должен конфликтовать если "статус" есть в нескольких таблицах

Crestoff
19.05.2018
16:59:46
не конфликтует
опустим его допустим

R
19.05.2018
17:00:46
@crestoff попробуй все таки сделать как тебе выше написали
'banner_format' => 'ad_banner_format.name'

Crestoff
19.05.2018
17:01:02
я отписал что уже делал так...
равносильно
что в запросе что в результате

R
19.05.2018
17:01:49
@crestoff а если просто ad_banner_format.name то оно появляется в $name?

Crestoff
19.05.2018
17:02:24
ща

Maxim
19.05.2018
17:02:26
сделай
->joinWith(['adBannerFormat t2' => function($q){
$q->select(['needed_id', 'name AS banner_format'])
}])
и получи вместе со связью
А вначале селект убери

Crestoff
19.05.2018
17:03:03

Google

Like
19.05.2018
17:05:39

Maxim
19.05.2018
17:06:04

Crestoff
19.05.2018
17:06:23
да делал , не помогло

Like
19.05.2018
17:08:55

Maxim
19.05.2018
17:10:11
return $this
->joinWith(['domains', 'cdn', 'adBannerFormat t2' => function($q){
$q->select(['needed_id', 'name AS banner_format'])
->with(['adBannerFormat'])
->FilterWhere([
'domain_id' => $domain_id,
'ad_type_id' => $ad_type,
'id' => $ad_campaign_id,
])
->active()
->asArray()
->all();
да делал , не помогло
Попробуй так ^
Ты хотя бы массивом получи желаемые поля, а потом определишь в какую модель их вставить

Crestoff
19.05.2018
17:11:31
ща

Maxim
19.05.2018
17:13:16
только t2 убери, если он нигде не используется

Crestoff
19.05.2018
17:14:32
щаща

Maxim
19.05.2018
17:21:37

Crestoff
19.05.2018
17:22:08
да ошибки полезли , разбираю

Maxim
19.05.2018
17:22:39
алиас определи на основную таблицу и прокинь его в эктив
и на needed_id обрати внимание, там должен быть id для связи

Crestoff
19.05.2018
17:26:40
ок
делаю
короче решил проблему
немного по-другому , но получил что хотел)
'ad_banner_format_id',
добавил в селект
тогда модель баннер-формат

Google

Crestoff
19.05.2018
17:38:55
начала подтягиваться
из неё уже дёргаю и размеры и название
короче спасибо большое за помощь!

Yuriy
19.05.2018
18:22:11
Добрый вечер! Пожалуйста, подскажите, для чего здесь https://github.com/chrisleekr/yii2-ngx-boilerplate/blob/master/api/models/User.php использовать authKey? (https://github.com/chrisleekr/yii2-ngx-boilerplate/blob/master/api/config/web.php yii\web\User::enableAutoLogin = true). Если при запросах к api в данном случае используется токен..
к тому же auth_key используется для подтверждения email после регистрации https://github.com/chrisleekr/yii2-ngx-boilerplate/blob/bedccd53b98f64081b28fea40388a70688652019/api/models/SignupForm.php#L98
по моим рассуждениям - yii\web\User::enableAutoLogin прям должен быть false, сам authKey - заиспользован не по назначению. и проще переименовать его во что-то вроде emailConfirmToken, для успокоения) интересует следующее - я прав или что-то напутал?

Maxim
19.05.2018
19:19:49

Like
19.05.2018
19:20:17
А
Тут ж верстаки были вроде как
Да?
Есть у кого верстка чатика?
Ну в смысле
Сайт - чат/месенеджер
Я чета не могу найти ничего годного

Maxim
19.05.2018
19:22:00
не очень понял твой вопрос
Ты верстальщика ищешь, чат с верстальщиками или тебе Фронтендщик/чат с фронтандщиками нужен, чтоб фрейм какой-то знал?

Like
19.05.2018
19:22:13
Авось кто-то пиздит готовые шаблоны с сайтов

Maxim
19.05.2018
19:22:59
так если там например ng - много не украдешь)

Like
19.05.2018
19:23:16
Дык есть фришные
templatemonster
Типа этого

Maxim
19.05.2018
19:24:29
так это отстой для CMS, нет?

Like
19.05.2018
19:24:43
Там ж вроде чистая есть

Google

Like
19.05.2018
19:24:44
Не?
> HTML шаблоны

Maxim
19.05.2018
19:24:53
Там и воровать нечего. Открывай страницу и копируй html к себе

Like
19.05.2018
19:25:07

Maxim
19.05.2018
19:26:16
таких не знаю

Like
19.05.2018
19:26:24
?

Yuriy
19.05.2018
19:27:09

Like
19.05.2018
19:27:14
Лана
Если будет чета красивое - тоже сойдет
Подкинете если чо :)

Maxim
19.05.2018
19:30:39

Yuriy
19.05.2018
19:33:52

Like
19.05.2018
19:35:25
Такс
Чо такое
Нада разрулить авторизацию с jwt?

Yuriy
19.05.2018
19:36:36
@maximniko а чего не так в 22 строке? с ней все ок)

Like
19.05.2018
19:38:37
Ну лан

Maxim
19.05.2018
19:39:59
Ладно. Может где и использует, не хочу вникать

Yuriy
19.05.2018
19:42:38

Google

Yuriy
19.05.2018
19:49:01
Нада разрулить авторизацию с jwt?
а вот теперь вопрос о jwt) если сделать его краткосрочным, его ведь придется постоянно обновлять.. где прочитать об этом?. чтобы кратко и ясно)

Like
19.05.2018
19:50:05
https://x-team.com/blog/my-experience-with-json-web-tokens/
> 1. Long-lived JWT + Validation on every request
Это?

Yuriy
19.05.2018
19:50:44
@shindakioku на сколько помню, у клиента должен быть и рефреш токен, брагодаря которому можно запрашивать новый основной токен

Like
19.05.2018
19:50:46
> var token = jwt.sign({ appId: appId }, certificate, { algorithm: 'RS512', expiresIn: 300 });
А, вон все проще

Yuriy
20.05.2018
06:30:37
Теперь вопрос касательно ролей RBAC. Накидал несколько новых контроллеров, действия к которым получает любой пользователь после аутентификации. Как мне лучше поступить? - создать новую роль с разрешениями к действиям этих контроллеров и добавить ее в defaultRoles? или воспользоваться ролью @?

Maxim
20.05.2018
06:39:43

Yuriy
20.05.2018
06:44:50

Eugene
20.05.2018
09:42:25
РЕбят подскажите, есть код который выполняет отправку писем
if ($user->save()) {
return Yii::$app->mailer->compose(['text' => 'passwordResetToken-text'], ['user' => $user])
->setFrom(['test@test.com' => 'test'])
->setTo($this->email)
->setSubject('Password reset for ' . Yii::$app->name)
->send();
}
Этот код лежит в модуле - и соответственно использует шаблоны для рендеринга писем из этого же модуля (.../moduleName/mail/...)
КАК МНЕ ЯВНО УКАЗАТЬ ЧТОБЫ ИСПОЛЬЗОВАЛИСЬ ШАБЛОНЫ ПРИЛОЖЕНИЯ (из папки @app/mail/...)???

Ad.x ??
20.05.2018
10:06:36

Eugene
20.05.2018
10:09:51
в настройках модуля, очевидно
Разобрался оказалось все гораздо проще в "compose" можно явно указывать путь для шаблона в моем случае нужно было сделать так:
return Yii::$app->mailer->compose(['text' => '@app/mail/passwordResetToken-text'], ['user' => $user])

R
20.05.2018
12:33:11
Подскажите пожалуйста как разрешить неавторизованным пользователя доступ к index
Вот такой код ниже возвращает 401 при запросе index
$behaviors['access'] = [
'class' => AccessControl::className(),
'except' => ['index'],
'rules' => [
[
'allow' => true,
'roles' => ['@'],
],
],
'denyCallback' => function ($rule, $action) {
throw new UnauthorizedHttpException('Unauthorized');
}
];

Максим
20.05.2018
12:35:52
так не работает?
[
'actions' => ['index'],
'allow' => true,
'roles' => ['?'],
],
[
'allow' => true,
'roles' => ['@'],
],

R
20.05.2018
12:41:36
@kohone вот в том то и дело что нет
Вот полный код
Это rest controller. Условно говоря я хочу что бы CRUD был только для авторизованых, а вот index для любых. Но для того что бы работали тесты codeception мне пришлось добавить поддержку авторизаци через HttpBearerAuth
public function behaviors()
{
$behaviors = parent::behaviors();
if (YII_ENV_TEST) {
$behaviors['authenticator']['authMethods'][] = HttpBearerAuth::className();
}
$behaviors['access'] = [
'class' => AccessControl::className(),
'rules' => [
[
'allow' => true,
'roles' => ['@'],
],
[
'allow' => true,
'actions' => ['index'],
'roles' => ['?'],
],
],
'denyCallback' => function ($rule, $action) {
throw new UnauthorizedHttpException('Unauthorized');
}
];
return $behaviors;
}

Andriy
20.05.2018
12:47:26
Привет ребят, подскажите пожалуйста, с чем может быть связана данная ошибка? Запустил миграции, все прошло. Но сам сайт не работает из-за этой ошибки