Niko
сделай
->joinWith(['adBannerFormat t2' => function($q){
$q->select(['needed_id', 'name AS banner_format'])
}])
и получи вместе со связью
А вначале селект убери
Дмитрий
Дмитрий
Anonymous
Niko
Дмитрий
да делал , не помогло
Anonymous
Niko
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();
Niko
да делал , не помогло
Попробуй так ^
Ты хотя бы массивом получи желаемые поля, а потом определишь в какую модель их вставить
Дмитрий
ща
Niko
только t2 убери, если он нигде не используется
Дмитрий
щаща
Niko
Дмитрий
да ошибки полезли , разбираю
Niko
алиас определи на основную таблицу и прокинь его в эктив
Niko
и на needed_id обрати внимание, там должен быть id для связи
Дмитрий
ок
Дмитрий
делаю
Дмитрий
короче решил проблему
Дмитрий
немного по-другому , но получил что хотел)
Дмитрий
'ad_banner_format_id',
Дмитрий
добавил в селект
Дмитрий
тогда модель баннер-формат
Дмитрий
начала подтягиваться
Дмитрий
из неё уже дёргаю и размеры и название
Дмитрий
короче спасибо большое за помощь!
Yuriy
Добрый вечер! Пожалуйста, подскажите, для чего здесь 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 в данном случае используется токен..
Yuriy
к тому же auth_key используется для подтверждения email после регистрации https://github.com/chrisleekr/yii2-ngx-boilerplate/blob/bedccd53b98f64081b28fea40388a70688652019/api/models/SignupForm.php#L98
Yuriy
по моим рассуждениям - yii\web\User::enableAutoLogin прям должен быть false, сам authKey - заиспользован не по назначению. и проще переименовать его во что-то вроде emailConfirmToken, для успокоения) интересует следующее - я прав или что-то напутал?
Niko
Anonymous
А
Anonymous
Тут ж верстаки были вроде как
Anonymous
Да?
Anonymous
Есть у кого верстка чатика?
Ну в смысле
Сайт - чат/месенеджер
Я чета не могу найти ничего годного
Niko
не очень понял твой вопрос
Ты верстальщика ищешь, чат с верстальщиками или тебе Фронтендщик/чат с фронтандщиками нужен, чтоб фрейм какой-то знал?
Anonymous
Anonymous
Авось кто-то пиздит готовые шаблоны с сайтов
Niko
так если там например ng - много не украдешь)
Anonymous
Дык есть фришные
Anonymous
templatemonster
Anonymous
Типа этого
Niko
так это отстой для CMS, нет?
Anonymous
Там ж вроде чистая есть
Anonymous
Не?
Anonymous
> HTML шаблоны
Niko
Там и воровать нечего. Открывай страницу и копируй html к себе
Anonymous
Niko
таких не знаю
Anonymous
😭
Anonymous
Лана
Если будет чета красивое - тоже сойдет
Anonymous
Подкинете если чо :)
Yuriy
Anonymous
Такс
Anonymous
Чо такое
Anonymous
Нада разрулить авторизацию с jwt?
Yuriy
@maximniko а чего не так в 22 строке? с ней все ок)
Anonymous
Ну лан
Niko
Ладно. Может где и использует, не хочу вникать
Yuriy
Yuriy
Нада разрулить авторизацию с jwt?
а вот теперь вопрос о jwt) если сделать его краткосрочным, его ведь придется постоянно обновлять.. где прочитать об этом?. чтобы кратко и ясно)
Anonymous
https://x-team.com/blog/my-experience-with-json-web-tokens/
Anonymous
> 1. Long-lived JWT + Validation on every request
Anonymous
Это?
Yuriy
@shindakioku на сколько помню, у клиента должен быть и рефреш токен, брагодаря которому можно запрашивать новый основной токен
Anonymous
> var token = jwt.sign({ appId: appId }, certificate, { algorithm: 'RS512', expiresIn: 300 });
А, вон все проще
Anonymous
Yuriy
Теперь вопрос касательно ролей RBAC. Накидал несколько новых контроллеров, действия к которым получает любой пользователь после аутентификации. Как мне лучше поступить? - создать новую роль с разрешениями к действиям этих контроллеров и добавить ее в defaultRoles? или воспользоваться ролью @?
Niko
Yuriy
Evgeny
РЕбят подскажите, есть код который выполняет отправку писем
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/...)???
The Ant
Evgeny
в настройках модуля, очевидно
Разобрался оказалось все гораздо проще в "compose" можно явно указывать путь для шаблона в моем случае нужно было сделать так:
return Yii::$app->mailer->compose(['text' => '@app/mail/passwordResetToken-text'], ['user' => $user])
R
Подскажите пожалуйста как разрешить неавторизованным пользователя доступ к index
Вот такой код ниже возвращает 401 при запросе index
$behaviors['access'] = [
'class' => AccessControl::className(),
'except' => ['index'],
'rules' => [
[
'allow' => true,
'roles' => ['@'],
],
],
'denyCallback' => function ($rule, $action) {
throw new UnauthorizedHttpException('Unauthorized');
}
];
Максим
так не работает?
[
'actions' => ['index'],
'allow' => true,
'roles' => ['?'],
],
[
'allow' => true,
'roles' => ['@'],
],
R
@kohone вот в том то и дело что нет
R
Вот полный код
Это 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;
}