El uso de when

When() es una de los métodos con los que Laravel, sorprende a los que comienzan, yo recurro a él cada vez que puedo por la potencia que aporta, ya que acepta parámetros y crea un código mas reusable.    

Veamos por ejemplo que si queremos introducir una condicional del tipo if else,  en un código podemos escribir algo asi enlazando ifs:

En el primer caso estamos diciendo algo como esto: Si filtramos lo que trae el request, por la columna likes, el valor de la variable query acogerá,    aquellos registros  en que likes, sea mayor que el valor de request donde likes_amount sea 0

if (request('filter_by') == 'likes') {
    $query->where('likes', '>', request('likes_amount', 0));
}
if (request('filter_by') == 'date') {
    $query->orderBy('created_at', request('ordering_rule', 'desc'));
}

Aquí estamos enlazando dos condiciones, que consideran el valor de unos campos para decidir que hacer.
Si usaramos when lo escribiríamos asi:

$query = Author::query();
$query->when(request('filter_by') == 'likes', function ($q) {
    return $q->where('likes', '>', request('likes_amount', 0));
});

$query->when(request('filter_by') == 'date', function ($q) {
    return $q->orderBy('created_at', request('ordering_rule', 'desc'));
});

Y lo que estamos diciendo es que la variable query, aplicará al modelo Author el método query, y que cuando el valor ejecute el filter_by a la columna likes dentro del metodo request, la función anónima se le pasara como parámetro una variable $q cuyo valor seran aquellos registros donde likes sea mayor que la likes_amount igual 0

Como vemos $q es una variable comodin que soporta el peso de la función, pues su valor variara en función del resultado.

$query = Producto::query();
$query->when(request('marca', false), function ($q, $marca) { 
    return $q->where('marcas_id', $marca);
});
$store = $query->get();

Y listo, esto es todo.

Espero modestamente que este artículo, sirva de ayuda a alguien.

Gracias.

Subir montañas hermana hombres……

El uso de update

El método update es el encargado de retornar las columnas afectadas por un acción, veámoslo debajo

$cantidad = $casas->whereNull('categoria_id')->update(['categoria_id' => 2]);

Aquí update nos devuelve el número de registros o filas donde se cumple el planteamiento, asignar el valor 2 a aquellas casas donde categoría_id es null

Y listo, esto es todo.

Espero modestamente que este artículo, sirva de ayuda a alguien.

Gracias.

….Un sueño es más que todo  y casi nada……

Ejemplos de uso del pattern

El pattern ofrece un control primario de los campos input de un formulario, y puede ser complementado con el uso de seudo elementos css y funciones js.

Cadena obligatoria variada.

Puede contener letras mayúsculas, minúsculas, números y los caracteres !?-   ,  y un  tamaño  entre 8 y 12 caracteres.

pattern="[A-Za-z0-9!?-]{8,12}" required

cadena obligatoria  de letras minúsculas, con un número opcionalmente de hasta dos dígitos al final. La cadena completa tendrá entre 5 y 12 caracteres

pattern="^([a-z]+[0-9]{0,2}){5,12}$" required

 Cadena compleja para email

pattern="^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$" required/

Cadena  para admitir  nombres de cualquier nacionalidad:

Incluye nombres compuestos y la mayoría de normas de acentuación. El número de caracteres será como mínimo 3 y como máximo 32. 

[a-zA-ZàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýżźñçčšžÀÁÂÄÃÅĄĆČĖĘÈÉÊËÌÍÎÏĮŁŃÒÓÔÖÕØÙÚÛÜŲŪŸÝŻŹÑßÇŒÆČŠŽ∂ð ,.'-]{2,32}

El usuario solo podrá meter una palabra de 4 a 16 caracteres entre la con las letras de A-Z y a-z

pattern=”[A-Za-z]{4-16}

Y listo, esto es todo.

Espero modestamente que este artículo, sirva de ayuda a alguien.

Gracias.

…subir montañas hermana hombres…

Uso de Calc

 La función cal(), que se añade a la propiedad width nos permite calcular o definir el ancho esperado de un div 

#div1 {
  position: absolute;
  left: 25px;
  width: calc(100% - 120px);
  border: 1px solid 0e0e0e;
  background-color: #000;
  padding: 5px;
  text-align: center;
} 

Pueden usarse los operadores + - * /, la expresión requiere siempre una expresión matemática y puede ser usada para casos como los div que se cambian de tamaño, al deslizarse otro.

Y listo, esto es todo.

Espero modestamente que este artículo, sirva de ayuda a alguien.

Gracias.

…..lo que realmente importa no es lo que te da la vida, sino lo que haces con ello….

El uso de with en Blade

Puedes hacer esto en la plantilla Bladede tu aplicación con el with en modo dinamico, uniéndolo al nombre del modelo

Post::whereSlug('slug')->get();

// en  vez de esto
View::make('posts.index')->with('posts', $posts);

// podemos hacer esto
View::make('posts.index')->withPosts($posts);

Y listo, esto es todo.

Espero modestamente que este artículo, sirva de ayuda a alguien.

Gracias.

Subir montañas hermana a los hombres……