Как собрать все правила ActiveForm в одной модели?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Закрыто
CyberDron
Сообщения: 3
Зарегистрирован: 2017.09.26, 14:28

Как собрать все правила ActiveForm в одной модели?

Сообщение CyberDron »

Парни, хочется вот что...
На сайте будет куча форм. В документации описано, что для каждой ActiveForm-формы требуется создание отдельного файла модели с описанием рулов. Но как-то не комильфо городить огород из кучи файлов-моделей для каждой мало-мальской формы. Можно все эти правила собрать в одном файлике-модели?
chesar
Сообщения: 514
Зарегистрирован: 2013.04.10, 17:49

Re: Как собрать все правила ActiveForm в одной модели?

Сообщение chesar »

CyberDron писал(а): 2017.09.26, 14:37В документации описано, что для каждой ActiveForm-формы требуется создание отдельного файла модели с описанием рулов.
Нет не обязательно. Пишите одну модель и используйте где угодно.
Аватара пользователя
Diplodok
Сообщения: 76
Зарегистрирован: 2012.07.09, 15:55
Контактная информация:

Re: Как собрать все правила ActiveForm в одной модели?

Сообщение Diplodok »

Создай файл модели общий с описанием всех полей и сценарий, а потом в контроллере объявляй нужный сценарий.
CyberDron
Сообщения: 3
Зарегистрирован: 2017.09.26, 14:28

Re: Как собрать все правила ActiveForm в одной модели?

Сообщение CyberDron »

Diplodok писал(а): 2017.09.26, 14:52 Создай файл модели общий с описанием всех полей и сценарий, а потом в контроллере объявляй нужный сценарий.
Если не затруднит, можно подробнее...

Контроллер:

Код: Выделить всё

use app\models\Form;

class SomeController extends Controller
{
    public function actionIndex1()
    {
	$model = new Form();
        return $this->render('@app/views/some.php', [ 'model' => $model ]);
    }
    
    public function actionIndex2()
    {
	/* ВОТ ТУТ НАДО ОБЪЯВИТЬ МОДЕЛЬ ДЛЯ ДРУГОЙ ФОРМЫ 
	$model1 = '???';
	*/
        return $this->render('@app/views/some.php', [ 'model' => $model1 ]);
    }	
    
}
Модель:

Код: Выделить всё


class Form extends Model
{
    public $text;

    public function rules()
    {
        return [
		[['text'], 'default', 'value' => '']
        ];
    }
}

CyberDron
Сообщения: 3
Зарегистрирован: 2017.09.26, 14:28

Re: Как собрать все правила ActiveForm в одной модели?

Сообщение CyberDron »

Аааа! Я вас понял. В один базовый рулл впихиваем вообще все существующие имена форм, а если потом нужно, запускаем сценарий валидации.
Да, отличное решение. Сам, дурак, не допёр! )))
Закрыто