
Mengi
17.05.2018
08:53:10
туплю)) нашел ошибку) в строке с Order имя столбца с пробелом написал?

Aleksey
17.05.2018
09:11:45
Привет всем.

Mr.
17.05.2018
09:12:35
привет

Aleksey
17.05.2018
09:15:18
кто тут из старичков есть?? самдарк, гитхабджека, МаксКиселев?

Google

Антон
17.05.2018
09:16:44

Aleksey
17.05.2018
09:17:34

Dmitry
17.05.2018
09:17:39
Я на старичка ещё не похожу?

Aleksey
17.05.2018
09:18:11

Dmitry
17.05.2018
09:18:21
Саша тут точно есть

Антон
17.05.2018
09:18:30

Aleksey
17.05.2018
09:19:21

Андрей
17.05.2018
09:20:02
как отсюда получить данные
unserialize('C:21:"MongoDB\\BSON\\ObjectId":48:{a:1:{s:3:"oid";s:24:"5afc28b059809e15fb3b2116";}}')

Aleksey
17.05.2018
09:20:04
раньше там уже с утра движуха была... классное было время))

Антон
17.05.2018
09:20:19
Старички здесь есть, но редко вступают в беседы

Андрей
17.05.2018
09:23:54
по подробнее
ну есть переменная в таком виде, мне нужно получить отуда id (5afc28b059809e15fb3b2116 в данном случае)

Тимур
17.05.2018
09:25:30

Google

Виктор
17.05.2018
09:25:57

Антон
17.05.2018
09:28:39

Vano
17.05.2018
09:28:41

Андрей
17.05.2018
09:35:50

R
17.05.2018
09:36:48
$a[‘oid’]

Андрей
17.05.2018
09:38:03

Screamie
17.05.2018
09:40:39
Всем привет. Есть вариант цеплять два одинаковых behaviora на разные поля модели? В доке написано, что первый в приоритете. Мне нужно сохранить два изображение по одной и той же схеме, но с разными именами.

R
17.05.2018
09:42:04
хоть ссылку на behavior скинь

Screamie
17.05.2018
09:42:46
Самописный, что-то вроде этого https://github.com/mohorev/yii2-upload-behavior/blob/master/src/UploadBehavior.php

R
17.05.2018
09:44:38
так пробовал?
function behaviors()
{
return [
[
'class' => UploadBehavior::class,
'attribute' => 'file',
'scenarios' => ['insert', 'update'],
'path' => '@webroot/upload/docs/{category.id}',
'url' => '@web/upload/docs/{category.id}',
],
[
'class' => UploadBehavior::class,
'attribute' => 'file2’,
'scenarios' => ['insert', 'update'],
'path' => '@webroot/upload/docs/{category.id}',
'url' => '@web/upload/docs/{category.id}',
],
];
}

Screamie
17.05.2018
09:45:09
))) Конечно
У моего behavior есть поле $name в котором указывается, как генерить будущее имя файла на основе полей модели. Например: {id}-{slug}

R
17.05.2018
09:45:47
так речь про второй атрибут, а не про имя файла

Screamie
17.05.2018
09:47:17
Для первого изображения я ставлю {id}-{slug}, для второго {id}-{slug}-crop. Но из-за того, что первый behavior перезаписывает второй имя всегда генерится через {id}-{slug}

R
17.05.2018
09:47:55
у тебя в модели как поле называется?

Screamie
17.05.2018
09:48:26
Одно cover, второе cover_sq.

R
17.05.2018
09:49:46
я так понимаю, у тебя в итоге в обоих полях одно и то же?

Виктор
17.05.2018
09:50:26

Screamie
17.05.2018
09:51:18
Эти поля не хранятся в базе.
В behavior есть метод getUploadUrl() он берет значение поля $name резолвит его по указанной схеме и таким образом достает нужный файл. Но в этот метод всегда попадает занчение из первого behavior

Виктор
17.05.2018
09:51:39

R
17.05.2018
09:53:03

Google

Screamie
17.05.2018
09:55:16
return [
[
'class' => FileUploadBehavior::class,
'attribute' => 'cover',
'path' => '@frontend/web/upload/{category.alias}/{type.alias}',
'url' => '/upload/{category.alias}/{type.alias}',
'name' => '{id}-{alias}',
'placeholder' => 'http://placehold.it/677x500'
],
[
'class' => FileUploadBehavior::class,
'attribute' => 'cover_sq',
'path' => '@frontend/web/upload/{category.alias}/{type.alias}',
'url' => '/upload/{category.alias}/{type.alias}',
'name' => '{id}-{alias}-sq',
'placeholder' => 'http://placehold.it/330x272'
],
];
Это behaviors модели

R
17.05.2018
09:55:28
попробуй return [‘behavior1’ => […], ‘behavior2’ => [...]]

Screamie
17.05.2018
09:55:41
Пробовал. Таже борода

R
17.05.2018
09:56:27
тогда смотри код поведения

Screamie
17.05.2018
09:57:13
Судя по всему придется отказаться от поведения вообще. Копаю второй час, но что-то не могу найти инфы =(

R
17.05.2018
09:58:06
у тебя name случайно не статическое свойство?

Screamie
17.05.2018
09:58:34
Неа

R
17.05.2018
09:59:11
тогда у тебя там синглтон походу

Screamie
17.05.2018
10:00:30
Нет. В том том то и дело. Модели разные. Дамп показывает, что за проход создается аж четыре экземпляра. Но значение $name всегда от первого =(

R
17.05.2018
10:00:44
можешь скинуть код поведения?
по идее, можно вообще не задавать name, ты можешь на основе attribute в самом поведении генерить нужное имя файла

Screamie
17.05.2018
10:02:59
Сейчас найду куда и скинуть и вышдю ссылку
На основе attribute - не универсально получится.

R
17.05.2018
10:03:55
попробуй простую проверку внутри поведения сделать, что-то вроде «если атрибут ковер, то нейм такой, иначе такой»
не универсально, но можно сделать проверку, если нейм не задан, тогда применять эту логику
просто интересно, будет оно работать, если в самом поведении определять нейм

Screamie
17.05.2018
10:17:50
Вот ссыль на поведение. Там два класса. Для удобства здесь засунул в один файл https://implode.io/yHefLS
Обошел проблему вызовом конкректного поведения. Но это как-то коряво.
Вот так не работало:
$model->getUploadUrl('cover') // отдает {id}-{ailas}
$model->getUploadUrl('cover_sq') // отдает тоже {id}-{ailas}
Заработало если поведению выдать имя:
$model->getUploadUrl('cover') // отдает {id}-{ailas}
$model->getBehavior('uploadCoverSQ')->getUploadUrl('cover_sq') // отдает {id}-{alias}-sq
Но может есть решение лучше. Вопрос еще открыт

R
17.05.2018
10:44:06
Можно переместить в модель эти методы

Screamie
17.05.2018
10:44:44
Нет. Они срабатывают и при сохранении. Так что нет смысла делать поведение. Если в модель их тащить

Google

R
17.05.2018
10:46:15
сейчас код гляну
в общем, понятно, в чем проблема
суть поведения в том, что оно расширяет твой класс своими методами и свойствами, поэтому у тебя name и там и там одно и то же
можно в name класть массив
создай приватное свойство _name и туда складывай
затем в getUploadUrl дергай из этого массива по ключу

Screamie
17.05.2018
10:52:21
Звучит логино. Сейчас попробую. Спасибо!

Vladislav
17.05.2018
10:54:22
Народ, а можно как-то из сохранённой в базу модели User вывести пароль? Или только путём сохранения в public свойстве этой модели сохранять?

R
17.05.2018
10:54:59
пароль невозможно восстановить
если используется стандартная генерация, конечно

Vladislav
17.05.2018
10:55:47
мне просто надо вывести пароль созданного пользователя

?
17.05.2018
10:55:52
я ж уже писал что ты можешь на beforeSave повеситься и сделать че тебе надо
ну и в посте он у тебя будет

R
17.05.2018
10:56:03
пароль не хранится в открытом виде
обычно

?
17.05.2018
10:56:32
да
но до момента попадания в базу его можно отловить и вывести куда надо

Vladislav
17.05.2018
10:57:10

R
17.05.2018
10:57:11
лучше опиши суть задачи

Yet Another Stats
17.05.2018
10:57:14

Google

Vladislav
17.05.2018
10:57:44
чё за карма

?
17.05.2018
10:58:12
на + отреогировал

Vladislav
17.05.2018
10:58:15

?
17.05.2018
10:58:17
типа благодарность

Vladislav
17.05.2018
10:58:35

R
17.05.2018
10:58:48
нужно высылать сразу при регистрации?

?
17.05.2018
10:59:36
я так понимаю что то типа вам сгенерирован новый пароль получите распешитесь

Yet Another Stats
17.05.2018
10:59:45
Карма @pointdnd стала 18

Vladislav
17.05.2018
10:59:48
да сразу после их создания... массив сохранённых моделей User уже есть

R
17.05.2018
10:59:57
плохая практика, лучше отправляй ссылку на восстановление
пользователь пройдет по ссылке и задаст пароль, какой ему надо
при этом пароль не будет передаваться в явном виде

?
17.05.2018
11:00:58
это если https

R
17.05.2018
11:01:19
посмотри, как в дефолтном проекте реализовано восстановление пароля

Vladislav
17.05.2018
11:01:35
там типа организация создаёт аккаунты и потом их раздаёт, а раздавать каждому ссылку такое себе
тем более с условием что их почты нет и не известны

R
17.05.2018
11:02:00
ну да, лучше логином и паролем всем светить))

Vladislav
17.05.2018
11:02:21
не всем а админу организации который создавал
а потом кому надо раздать