@yii2ru

Страница 17 из 1721
Antony
29.09.2016
11:43:30
Т.е. я правильно понимаю что без указания сценария в rules будет применятся в любом случае? Тогда не понятно зачем вообще переопределять scenarios.

Anatoly
29.09.2016
11:46:24
Да, правильно. Здесь есть 2 варианта решения. Иногда форма имеет настольно много полей / сценарием, что наглядней будет записать их в другом виде - переопределить scenarios и убрать on из rules. Гибко, но не с первого раза въезжаешь

Antony
29.09.2016
11:55:57
Т.е. scenarios я должен указать только уникальые поля для этого сценария, для других сценариев в этом случае оно не будет применятся, а поля которые не заданы в scenarios будут выполнятся в любом случае (как SCENARIO_DEFAULT)? На примере public function scenarios() { return [ self::SCENARIO_GUEST => ['email','username'], self::SCENARIO_AUTH => ['user_id'], ]; } public function rules() { return [ [ ['message','email','username'], 'required'], [ ['message','email','username'], 'string'], [ ['user_id'], 'integer'] ]; } Я все верно понял?

Anatoly
29.09.2016
11:56:15
В данном случае - да

Google
Anatoly
29.09.2016
11:56:41
Ой, стоп

Поля, которых нет в scenarios будут unsafe

То есть ты либо указываешь 'on' у валидатора, либо пишешь метод scenarios и указываешь в каких сценариях какие поля являются safe

Надеюсь, понятно объяснил

Antony
29.09.2016
11:58:55
Т.е. поля по умолчанию которые должны выполнятся во всех сценариях я могу либо дублировать в scenarios, либо в rules пишу on все сценарии?

Anatoly
29.09.2016
11:59:04
Да, так

Antony
29.09.2016
12:01:01
Окей, спасибо разобрался) Было бы неплохо вместе с системным сценарием SCENARIO_DEFAULT тогда иметь еще SCENARIO_ALL тогда) Но в принципе можно в rules поместить в переменную все доступные сценарии.

Anatoly
29.09.2016
12:01:38
Можно унаследовать результат родительского scenarios, тогда default будет работать

Antony
29.09.2016
12:02:29
мерджить с parent::scenarios()?

Anatoly
29.09.2016
12:04:23
Ага

Antony
29.09.2016
12:09:16
и еще вопрос: если у меня есть ссылка на другую таблицу (к примеру email_id), но в форме нужно передать сам email, я планирую при beforeSave выдернуть или добавить email в другую таблицу, вернуть id в модель. Это нормально или можно как-то лучше реализовать? Таблица с емейлами выглядит примерно так: id | email Нужно, ибо в проекте много где емейлы используются, поэтому было решено вынести в отдельную таблицу.

Степан
30.09.2016
16:51:13
всем привет, есть вопрос, у меня есть метод, который вызывается в лейауте, чтобы проверить добывает ли сейчас перс ресурсы. Если добывает, значит $stay_time > 0 и срабатывает if. так вот потом, когда срабатывает else, получается что он срабатывать начинает постоянно и постоянно записывает в ресурсы данные. Как сделать чтобы else сработал например только 1 раз?

короче с каждым обновлением страницы у меня пишет "Вы закончили работать и получили ...." =)

Google
Ilya
30.09.2016
17:40:55
Никто не сталкивался, как получить дату ближайшего вторника? Или даты трех ближайших вторников?

Можно такое реализовать без мудохонья с написанием самописных модулей?

в strtotime вроде только ближайший вторник можно получить, а вот второй ближайший вторник, вроде как нельзя

Borisov
30.09.2016
18:27:18
А второй ближайший вторник прибавь к первому интервал неделя или семь дней

Ilya
30.09.2016
18:29:12
Thanks

Фак, спасибо

))

Уже решил проблему)

Этим же способом)

Хотя не совсем, с помощью strtotime

Удобная вещь оказалась)

Степан
01.10.2016
05:17:52
Токен записать
Спасибо, погуглю)

то есть токен хранить в бд?

SiZE
01.10.2016
07:13:08
Можно и в сессии и чистить если действие выполнено

Р2
01.10.2016
07:37:45
Привет!

а может кто-то подсказать по доктрин мигрейшнс?

Google
Р2
01.10.2016
07:38:16
Дано: symfony и doctrine migrations Проблема: миграции бд бывают тяжелыми и бывает, что код уже выкатился, а миграция ещё не накатилась, в результате чего код работает с ошибками. Теоретически надо заставить код при деплое уметь работать с бд до миграции и после - с двумя версиями схемы бд. Надо: понять тру-вей с т.з. symfony и doctrine migrations для реализации такого решения проблемы. Или возможно есть иные подходы "к снаряду".

Степан
01.10.2016
07:38:22
а в сессии можно подменить же? сделал через бд

Ilya
01.10.2016
11:25:51
Никто не подскажет, как получить данные зависимости? Если по -> отдает только аттрибут этого объекта.

Хотя в оф документации сказано, что по ->name должен отдавать зависимость

Dmitry
01.10.2016
11:32:29
Надо связь чтобы была

getProduct

Item->product

Если ты про это

В доках есть примеры

Ilya
01.10.2016
11:40:07
Так связь есть, в print_r показывает все, что я указал в ->with()->, но при попытке обращения к нужному аттрибуту я получаю лишь index зависимости, а не саму зависимость

А если использовать asArray, то все работает

Дмитрий
01.10.2016
11:40:57
Илья, покажите код )

Ilya
01.10.2016
11:41:00
А мне нужно не превращая объект в массив получить зависимости

https://jsfiddle.net/zznda0xx/

Или выход - только использовать toArray?

Дмитрий
01.10.2016
11:44:13
а getCourse() как выглядит?

Ilya
01.10.2016
11:44:31
public function getCourse() { return $this->hasOne(Courses::className(), ['index' => 'course']); }

Так в asArray он все выводит как надо, показывает содержимое курса, а не индекс

Дмитрий
01.10.2016
11:47:15
у вас поле с id связи тоже называется course?

Ilya
01.10.2016
11:47:40
Да

Google
Дмитрий
01.10.2016
11:47:50
измените название связи

и обращайтесь к ней по этому новому имени

не надо их одинаково называть

Ilya
01.10.2016
11:48:40
Так, вроде, удобнее)

Пока не работаешь, как с объектом

эх

Понял, спасибо)

Дмитрий
01.10.2016
11:49:54
Обычно поле называется с суффиксом Id - courseId

а связь уже course

Ilya
01.10.2016
11:50:35
В начале так и делал, но потом все переписал без суффиксов) Показалось, что так будет удобнее работать

Да и в принципе удобнее, пока не сталкиваешься с объектами

Хотя и не правильно)

SiZE
03.10.2016
05:01:23
Нифига не удобнее. =)

Dmitry
03.10.2016
06:16:47
+

RoboSpectrum
06.10.2016
18:24:31
Привет, народ

ну помгайте

нужно чтобы я из админки заливал svg картинки, а в фронтенде они были доступны

тоже самое касается некоторых js файлов

попробовал засунуть appsets файл в common и переместить все туда, везде ошибки

кто спасет меня? гугл не хочет спасать

Google
RoboSpectrum
06.10.2016
18:26:34
где правильно хранить общие css, js и как их правильно подключить?

я уже обрадовался помощи

но "соплектакции" тоже весело конечно

Виталий
06.10.2016
18:31:04
нужно чтобы я из админки заливал svg картинки, а в фронтенде они были доступны
админка это что? Отдельный vhost? Чем отличается от фронтенда?

Ivan Po
06.10.2016
18:31:08
Во фронте храни, норм будет

RoboSpectrum
06.10.2016
18:31:21
да, админка -это backend

отдельный vhost

во фронте хранить, ок, как юзать из бэка?

Ivan Po
06.10.2016
18:31:56
В бд засунь

Виталий
06.10.2016
18:31:58
По http

frontend/web/files - сюда сохраняй

RoboSpectrum
06.10.2016
18:32:24
в бд оно уже есть, нет доступа из сайта к изображению

Виталий
06.10.2016
18:32:25
через http подключай

Если Docker, можно использовать Volumes

RoboSpectrum
06.10.2016
18:34:17
насколько я понимаю нужно сделать appAsset файл в бекенде с параметром $basePath = '@frontend/web' на фронтенд, как только так сделал, ошибки пропали связанные с js пропали, но как быть с svg файлами, которые лежат в @frontend/web/svg

Страница 17 из 1721