
Konstantin
07.07.2017
09:15:47
оно может и к лучшему - тебе ж не по всем полям искать, а только по некоторым
плюс может еще поиск по всяким связанным полям
свои шаблоны для gii - это хорошо
я себе запилил crud без view

Google

Konstantin
07.07.2017
09:16:33
(с совмещенным view/update)

M
07.07.2017
09:17:17
я себе запилил crud без view
тоже мало понимаю зачем view в CRUD для админки, куда полезнее сделать frontendUrlManager и давать ссылку сразу на материал...
А как ты view/update совместил, скинь плиз скрины в лс)

Konstantin
07.07.2017
09:20:08
та какие скрины
просто форма на обновление используется в качестве view
надо отредактировать - поправил поля и сохранил
не надо - почитал поля

M
07.07.2017
09:21:17
Т.е. это дефолтный апдейт?

Konstantin
07.07.2017
09:23:13
это непозволительное вольнодумство

Nikita
07.07.2017
09:23:14

Konstantin
07.07.2017
09:23:15
от рук отбился
ой
не туда написал :)

Google

Konstantin
07.07.2017
09:23:34
да, дефолтный апдейт

Vladislav
07.07.2017
09:25:57

M
07.07.2017
09:27:26

Vladislav
07.07.2017
09:27:54
вопрос был в том, что правила валидации будут дублироваться
общий трейт позволит убрать дублирование
если нужны дополнительные кастомные правила для компонента, то можно переопределить трейтовское

M
07.07.2017
09:28:50
Типа в трейте совсем уж базовые правила будут?
А в модели которая заюзала, будет мердж с кастомными?
Ну тогда это не далеко от copyPaste ушло.

Vladislav
07.07.2017
09:32:00
вопрос был в дублировании правил
трейты их решают

M
07.07.2017
09:32:26

Vladislav
07.07.2017
09:32:36
если у тебя валидация в AR, в форме и в поиске кардинально отличется, то не используй даный подхэод
но чаще там одно и то же
class Foo {
use FooTrait;
function rules() {
return array_merge(
['my custom rules'],
$this->commonRules()
);
}
}
trait FooTrait {
function commonRules() {
return ['common rules'];
}
}
$foo = new Foo();
var_dump($foo->rules());
array(2) {
[0]=>
string(15) "my custom rules"
[1]=>
string(12) "common rules"
}
если отдельныхз правил нет, то
function rules() {
return $this->commonRules();
}

M
07.07.2017
09:35:53

Vladislav
07.07.2017
09:36:07
ну тогда не используй
кто заставляет то?

Google

Vladislav
07.07.2017
09:36:16
но тред начался с коммента
Стопэ, вопрос был не зачем, а почему так. На обеде подумал, и понял, что во всём виноват ~навальный~ AR паттерн, а точнее то что в Yii2 он ещё расширен от Model, которая позволяет модельку пихать в формы и *СРАЗУ* всё делать.
Т.е. в "нормальных" ситуациях должна быть AR, *Form модели и *Search модели, но тут всплывает второй косяк, правила валидации придётся копировать...
" но тут всплывает второй косяк, правила валидации придётся копировать..."
трейты уберут это

Konstantin
07.07.2017
09:37:41
правила валидации придется _частично_ копировать!

Vladislav
07.07.2017
09:37:56

M
07.07.2017
09:38:02

Vladislav
07.07.2017
09:38:32
если это _частично_ составляет более 50% или туда вхоядт сложные правилаЮ, которые могут часто менятся
то будет удобно
иначе копируй
ибо нет серебрянной пули
под каждую задачу нужно свое наиболее приемлимое решение

Konstantin
07.07.2017
09:40:30
я бы тупо копировал

M
07.07.2017
09:40:37
Я подумал МБ в rules трета сделать условие что если __class__ это Form, то даём одни правила, иначе другие...

Konstantin
07.07.2017
09:40:49
вот есть у тебя поле с мейлом

M
07.07.2017
09:40:55

Vladislav
07.07.2017
09:41:05
можно и настолкьо абсрагироваться

Konstantin
07.07.2017
09:41:09
если ты по нему ищешь, то какая разница, валидный мейл тебе дали, или нет?

Vladislav
07.07.2017
09:41:12
можно даже не чекать __class__

Dmitriy
07.07.2017
09:41:14

Google

Vladislav
07.07.2017
09:41:25
а не
с првоеркой класса удобнее
но нужно тогда всегда строго соглашение обю именовании соблюдать

Konstantin
07.07.2017
09:42:14
а еще можно сделать базовый класс, унаследованный от модели, в нем правила валидации сделать для всех сценариев, а потом унаследовать form, search и ar от него
и вызвать огорчение @ExileeD :)

Vladislav
07.07.2017
09:42:28
то тогда устанешь все поддерживать

Dmitriy
07.07.2017
09:42:41

Vladislav
07.07.2017
09:42:52

Admin
ERROR: S client not available

Vladislav
07.07.2017
09:42:57
для части классов

Konstantin
07.07.2017
09:42:58
именно поэтому я копирую
и не парюсь

Dmitriy
07.07.2017
09:43:19

Vladislav
07.07.2017
09:43:30
у меня было как-то около 9 классов на одну Модель
и я накосячил в изщменении правил валидации
не ищменил у юзеров
и получилась дырка
после перевел натрейты
а сейчас даже интереснее идею подклинули

Google

Vladislav
07.07.2017
09:44:17
с проверкой класса
но можно сделать мягче и реализровать несколько методов
один общий
и дял каждой формы/модели и тд свой отедльный
типа userFormRules()

Dmitriy
07.07.2017
09:45:54
Возникает вопрос. А можно ли убрать полностью валидацию в Ар?

Vladislav
07.07.2017
09:46:04
и в самом
UserForm {
use UserValidationTrait;
function rules() {
return $this->userFormRules();
}
}
и разговоры только через классы интерфейсы с ним

Dmitriy
07.07.2017
09:46:35

Vladislav
07.07.2017
09:46:37
еще один ненужный класс
$obj = new User($params);
$obj->save();
какой-нибудь джун или типа того

Dmitriy
07.07.2017
09:47:44

Максим
07.07.2017
09:47:45
Не поделишься списком плагинов, которые стоят? Интересно. Думаю сам попробовать пожить без IDE.

Vladislav
07.07.2017
09:48:13
никогда не бывает так, как задумано

Nikita
07.07.2017
09:48:40
Может кто сталкивался
использую select2 виджет
когда выключаю встроеные
'yii\bootstrap\BootstrapAsset',
виджет появляется, но появляется ошибка

Vladislav
07.07.2017
09:48:40
найдется новичок, или просто ленивый чел который подумает "да здесь явно норм данные"

Nikita
07.07.2017
09:48:42

Vladislav
07.07.2017
09:48:47
и пошло-поехало