Конструктор форм в Laravel

250
04 ноября 2017, 15:50

Здравствуйте.

Есть 7 форм, в которых есть от 20 до 50 различных полей. Каждое поле при обработки формы должно проходить валидацию, возможно как-то преобразовываться и сохраняться в определнное поле определённой модели.

При таких объемах код в контроллере и шаблоне будет массивным, громоздким и неудобным для дальнейшего изменения.

Чтобы решить эту проблему, я хотел сделать что-то типо массива, в котором записаны поля и их параметры, такие как:

  • тип поля (текст, число, чекбокс и т.д. - название заготовленного шаблона)
  • имя поля (аттрибут name)
  • название поля (label)
  • возможные значения (для select и прочих)
  • подсказка
  • правила проверки
  • как обрабатывать при сохранении
  • куда сохранять, в какую таблицу и в какое поле
  • и т.д.

Таким образом можно было бы настроить форму в одном месте, и в случае чего быстро и безболезненно добавлять, изменять или удалять какие-то поля.

Подскажите, решали ли вы такую задачу, если да, то как? Каким образом лучше всего реализовывать это именно в Laravel, с учётом всех его возможностей?

Answer 1

Я рекомендовал бы вынести весь код формы в отдельный трейт и подключать его соответственно к необходимому контроллеру.

Например создайте новый трейт FormContruct, добавьте весь ваш код туда:

trait FormContruct
{
// ваш код
}

И уже в классе вашего контроллера подключать его:

class SomeController extends Controller 
{
   use FormContruct;
   // ваши методы
}

P.S. Учитывая большое количество полей в формах, есть смысл просто получить все их значения в массив:

$input = $request->all();

И уже дальше работать с этим массивом.

READ ALSO
Как в htacess установить файл основным (типа index.php), если его имя меняется?

Как в htacess установить файл основным (типа index.php), если его имя меняется?

Есть директория на сервере, а в ней файл генерируется:

194
Обработка массива. PHP. Json

Обработка массива. PHP. Json

Добрый день, в чем может быть ошибка? Почему услуги не вписываются в соответствующее поле?

212
как убрать “\/” при отображении файлов с помощью функции ftp_nlist($connect, $dir) в php?

как убрать “\/” при отображении файлов с помощью функции ftp_nlist($connect, $dir) в php?

как убрать "/" при отображении файлов с помощью функции ftp_nlist($connect, $dir) в php?

206
Не могу передать значение в Volume в Soap Gis Gkh

Не могу передать значение в Volume в Soap Gis Gkh

как передать значение value в Volume в wsdl Гис Жкх? Кто делал модуль импорт платежных документов ?

288