Restrincción en modelo utilizando Jquery en el modelo.

Restrincción en modelo utilizando Jquery en el modelo.

Imaginemos que deseas hacer una condición donde si un usuario elige alguna opción de un modelo un campo se vuelva obligatorio otro campo, todo esto haciendolo desde el modelo.

Para realizar esto debe entrar en el modelo al que desea aplicar la condición y agregar la siguiente en los rules.

Ejemplo: 

En el siguiente ejemplo tenemos un campo llamado 'solucion' el cual se volvera obligatorio si otro campo del mismo modelo llamado 'ticket_estatus_id' es igual a 5 el cual es un valor de un ID de una llave foranea.

   public function rules()
    {
        return [ 
...
..


            [['solucion'], 'required', 
                'when' => function($model){
                    return $model->ticket_estatus_id == 5;
                }
                ,'whenClient' => "function (attribute, value) {
                    console.log('estatus desde modelo:'+$('#ticket-ticket_estatus_id').val());
                    var res = $('#ticket-ticket_estatus_id').val() == '5'
                    console.log(res);
                    return res;
                }"
            ],

......
.....

        ];
    }


Observe que donde dice 'whenClient' se ejecuta una función de Jquery donde dentro de la vista del formulario obtiene el valor de un select, el ejemplo muestra la impresión con un 'console.log()' para demostrar que funciona en el momento que se intenta guardar.

Gracias por dejar tus comentarios. No creo contestar todos sus pregúntas en seguida asi que si deseas alguna consultoria urgente puedes buscarme en redes sociales. 

Comentarios

Aprende Yii2


Lo más Visto

Guía rápida para uso de widget kartik para select para formulario

Cómo incluir una vista dentro de un modal

Tutorial de implementación de calendario de rango de fechas con Karkit en gridView

Google Plus desaparecerá el 4 de Abril de 2019

Crear fomulario HTML con checkbox sin Active Record

hostinger

ventana bienvenida