NoizeMC
@NoizeMC
junior PHP (Yii2) разработчик

Как обработать форму(несколько форм на одной странице) с неизвестными полями?

Добрый день.
Суть в том, что есть страница, на ней пользователь неким образом создает формы и размещает их на одной странице. Соответственно, пользователь может дать любое имя для поля.

Каким образом можно обработать такую страницу с несколькими формами с неизвестными названиями полей?

Например, когда мы делаем обработку одной формы с известными полями то это выглядит так:

Модель формы, где задаются нужные поля и правила валидации:
<?php

namespace app\models;

use yii\base\Model;

class EntryForm extends Model
{
    public $name;
    public $email;

    public function rules()
    {
        return [
            [['name', 'email'], 'required'],
            ['email', 'email'],
        ];
    }
}


И обработка в контроллере:
<?php

namespace app\controllers;

use Yii;
use yii\web\Controller;
use app\models\EntryForm;

class SiteController extends Controller
{
    // ...существующий код...

    public function actionEntry()
    {
        $model = new EntryForm();

        if ($model->load(Yii::$app->request->post()) && $model->validate()) {
            // данные в $model удачно проверены

            // делаем что-то полезное с $model ...
 
            return $this->render('entry-confirm', ['model' => $model]);
        } else {
            // либо страница отображается первый раз, либо есть ошибка в данных
            return $this->render('entry', ['model' => $model]);
        }
    }
}


Так вот, а что если эти поля неизвестны и их может быть разное количество?
  • Вопрос задан
  • 344 просмотра
Решения вопроса 1
qonand
@qonand
Software Engineer
используйте для этих целей DynamicModel
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
paulfcdd
@paulfcdd
PHP/Sf/WEB developer
Что-то мне подсказывает, что надо итерацию сделать, например, foreach (если я правильно понял суть вопроса)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы