yii2
Yii2 ActiveForm
Buscar..
Campos de formulario en Yii2
Muestra el ejemplo básico de la página de visualización en Yii2 para nuevos alumnos
Estas son clases básicas que debe agregar para crear un formulario usando yii2 ActiveForm
<?php
Use yii\helpers\Html;
Use yii\widgets\ActiveForm;
La línea de abajo comenzará la etiqueta de formulario para nuestro formulario de abajo que muestra un ejemplo que muestra cómo especificar id para el formulario y cómo aplicar cualquier clase para el formulario.
$form =ActiveForm::begin([ 'id'=> 'login-form', 'options'=> ['class' => 'form-horizontal'],]) ?>
Aquí $ modelo Especifique qué campo de la tabla de base de datos queremos vincular con la forma en que se modela el objeto almacenado aquí en esta variable que se ha pasado desde el controlador relevante.
<?= $form->field($model, 'username') ?>
<?= $form->field($model, 'password')->passwordInput() ?>
'nombre de usuario' y 'contraseña' es el nombre del campo de la tabla con el que nuestro valor estará vinculado.
Aquí, en el siguiente código, estamos poniendo el botón Enviar para enviar el formulario y aplicamos 'Iniciar sesión' como texto de botón y clases básicas de CSS.
<div class="form-group">
<div class="col-lg-offset-1 col-lg-11">
<?= Html::submitButton('Login', ['class' => 'btn btn-primary']) ?>
</div>
</div>
Aquí en el siguiente código estamos cerrando formulario
<?php ActiveForm::end() ?>
Crear campo de contraseña:
<?= $form->field($model, 'password')->passwordInput() ?>
Crear campo de texto:
<?= $form->field($model, 'username') ?>
Crear campo de formulario oculto:
echo $form->field($model, 'hidden1')->hiddenInput()->label(false);
Crear desplegable:
<?php echo $form->field($model, 'name')
->dropdownList(
Stud::find()->select(['name'])
->indexBy('name')->column(),
['prompt'=>'Select no']); ?>
Lista desplegable con identificación y nombre
<?= $form->field($model, 'name')->dropDownList(
ArrayHelper::map(Stud::find()->all(), 'no', 'name'),['prompt' => 'Select Car Name']
) ?>
Crear FileUploader:
echo $form->field($model, 'imagepath')->fileInput();
Agregar un marcador de posición y una etiqueta personalizada
<?= $form->field($model, 'username')->textInput()->hint('Please enter your name')->label('Name') ?>
Validaciones de ActiveForm
Puede habilitar / deshabilitar ajax y validaciones de clientes en forma activa.
$form = ActiveForm::begin([
'id' => 'signup-form',
'enableClientValidation' => true,
'enableAjaxValidation' => true,
'validationUrl' => Url::to('signup'),
]);
-
enableClientValidation
está habilitado de forma predeterminada en ActiveForm. Si no necesita la validación del cliente en forma, podemos deshabilitarla asignándola como falsa. -
enableAjaxValidation
está deshabilitado de forma predeterminada en ActiveForm. Si desea habilitarlo, tenemos que agregarlo manualmente en ActiveForm como arriba. -
validationUrl
: si desea mantener toda la codificación de validación en una acción de controlador separada para este formulario, podemos configurar el formulario activo utilizandovalidationUrl
. Si no configuramos esto, tomará el valor de acción del formulario.
Los dos argumentos anteriores afectarán para toda la forma. Si desea verificar la validación de ajax solo para un campo en particular en el formulario, puede agregar enableAjaxValidation
para ese campo en particular. Solo funcionará para ese campo no de forma completa.
Por ejemplo, en el formulario de registro, desea verificar que el nombre de usuario ya existe. La validación a la hora del usuario ingrese el formulario. puede utilizar este argumento enableAjaxValidation
para ese campo.
echo $form->field($model, 'username', ['enableAjaxValidation' => true]);