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

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

Cómo evitar el reenvío de formulario

Como instalar Yii en Windows usando App Serv

hostinger

ventana bienvenida