Size: a a a

2020 April 20

a

artem in Yii Framework 3
Alexander Makarov
Билдер был в Yii 1.1 и показал себя не очень в случаях когда всё-таки нужно HTML кастомный.
Эмм.. а может там и хтмл нет. Форма есть форма
источник

АС

Альберт Степанцев in Yii Framework 3
Alexander Makarov
Билдер был в Yii 1.1 и показал себя не очень в случаях когда всё-таки нужно HTML кастомный.
а не рассматривал возможность кастомных шаблонов?
что по умолчанию есть темплейт для той же формы стандартный, но если надо разрабу - он может сделать свой и подсунуть
источник

АС

Альберт Степанцев in Yii Framework 3
я такое делал однажды, мне понравилось
источник

АС

Альберт Степанцев in Yii Framework 3
то есть в билдере ->setTemplate($template)
источник

AM

Alexander Makarov in Yii Framework 3
Альберт Степанцев
а не рассматривал возможность кастомных шаблонов?
что по умолчанию есть темплейт для той же формы стандартный, но если надо разрабу - он может сделать свой и подсунуть
В Yii 2 так.
источник

AM

Alexander Makarov in Yii Framework 3
Ну то есть там там на каждое поле :)
источник

AM

Alexander Makarov in Yii Framework 3
+ можно глобально под каждое настроить.
источник

АС

Альберт Степанцев in Yii Framework 3
чем не понравился подход?
источник

AM

Alexander Makarov in Yii Framework 3
Почему же не понравился? Нормальный.
источник

АС

Альберт Степанцев in Yii Framework 3
ОК
источник

ДД

Дмитрий Дим in Yii Framework 3
Можно делать так:
https://pastiebin.com/5e9d81d0c0cac

Я просто думаю.. думаю.... Вообще релиз yii3 не должен зависеть от этого компонента.

FormBuilderTest.php:

$created = FieldBuilder::widget()
           ->withForm($forms)
           ->form($form)
           ->attribute('fieldString')
           ->template('{input}')
           ->input('email', ['required' => false])
           ->run();

сразу не поймешь, чем отличается withForm и form(),
а далее в input у нас required => false, хотя этот required можно было бы взять из правил валидации формы. и его бы не пришлось писать руками.

По ссылке выше был бы компромиссный подход из yii2, когда нужен кастомный контейнер для формы. мы могли бы использовать <?= $builder->field('login'); ?>.

Просто текущее API форм слишком сложное.  Оно должно упрощать, но по факту html написать руками сейчас сильно проще)
источник

ДД

Дмитрий Дим in Yii Framework 3
в yii2 все было сильно проще в плане форм, чем сейчас то, что я вижу в тестах. (ну да, раньше было лучше...)
источник

ДД

Дмитрий Дим in Yii Framework 3
хотя подход того же ларавел (я бан не получу?)
<input id="title" type="text" class="@error('title') is-invalid @enderror">

@error('title')
   <div class="alert alert-danger">{{ $message }}</div>
@enderror

идеален )
источник

ДД

Дмитрий Дим in Yii Framework 3
они просто выкинули билдер
источник

Д

Дмитрий in Yii Framework 3
Дмитрий Дим
$builder = new FormBuilder($loginForm)
   ->action('LoginController@login')
   ->method('post')
   ->addField('input', TextInput::class)
   ->addField('password', PasswordInput::class)
   ->build();
да, это гораздо удобнее.
если что, может и мидлвары прикрутить - до build() и после
@yiiliveext ;)
источник

AM

Alexander Makarov in Yii Framework 3
Нужно посмотреть https://github.com/yiisoft/yii-web/pull/244 ещё раз. Я чую что глаз мой замылился на этот PR...
источник

AM

Alexander Makarov in Yii Framework 3
Дмитрий Дим
хотя подход того же ларавел (я бан не получу?)
<input id="title" type="text" class="@error('title') is-invalid @enderror">

@error('title')
   <div class="alert alert-danger">{{ $message }}</div>
@enderror

идеален )
Всегда хватает? А для input валидацию руками прописывать? value, required и вот это всё?
источник

ДД

Дмитрий Дим in Yii Framework 3
Да, если это не crud, прописываю руками. Если это какая-то админка (но это было раньше) использовал формы из yii2.
источник

ДД

Дмитрий Дим in Yii Framework 3
валидация то проходит не в отображении)
источник

ДД

Дмитрий Дим in Yii Framework 3
а вывести как в том же laravel довольно просто.
просто если хочется билдера форм, то его нужно накидать за 5 строчек кода. не распинаясь на шаблоны, аттрибуты и так далее. указал нужные поля и погнали)
источник