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
не всем а админу организации который создавал
а потом кому надо раздать