La guía (cheat sheet) definitiva de Grid CSS

En el post anterior os pasé un par de enlaces para ver qué es CSS GRID y para empezar a aprender.

En este os paso un par de enlaces a modo de chuleta para refrescar la cantidad de propiedades que tiene CSS GRID.

Aquí tenemos dos páginas de referencia para (de un plumazo) refrescar la memoria de las bondades que atesora.

https://learncssgrid.com

https://grid.malven.co


Captura de pantalla de grid.malven.com


Tu opinión es importante para mi, ¿Te ha resultado útil este artículo?

Ir a un anchor/punto de ancla con un margen superior personalizado

A veces cuando nos queremos mover a un punto de «ancla» nos puede surgir un problema en el caso que tengamos, por ejemplo, un navbar.
¿Por qué? Porque HTML no reconoce si tiene una capa que le tape cierto contenido o no. Para solucionar esto tenemos una propiedad en css llamada scroll-margin-top, y le podemos pasar los píxeles de margen que queremos respecto a la parte superior.

#elemento{
    scroll-margin-top: 72px;
}

Podemos ver el ejemplo en Codepen:

See the Pen
Scroll to Anchor with margin top
by Kike (@kikebeltran)
on CodePen.


Tu opinión es importante para mi, ¿Te ha resultado útil este artículo?

Expected validator to return Promise or Observable

Si te retorna este error en Angular es porque tendrás más de un «validator» sin que estén dentro de un array.

Por ejemplo:

this.formBuilder.group({
    ...
    email: ['', Validators.required, Validators.email],
});

Si tienes varios «Validators» sin que estos estén contenidos en su propio array, deberíamos modificarlos a:

this.formBuilder.group({
    ...
    email: ['', [Validators.required, Validators.email] ],
});

Y fixed 💃


Pasamos de tener los «Validators» de:

Validators.required, Validators.email

a:

[ Validators.required, Validators.email ]


Tu opinión es importante para mi, ¿Te ha resultado útil este artículo?

Crear el Model, Factory, Migration, Seeder y Controller con un solo comando en Laravel 8

Si estamos trabajando en Laravel 8 y queremos crear todos estos archivos:

Model
Factory
Migration
Seeder
Controller

Tan solo tendremos que ejecutar:

php artisan make:model ModelName -a

Nos devolverá:

Model created successfully.
Factory created successfully.
Created Migration: 2021_06_30_063551_create_name_table
Seeder created successfully.
Controller created successfully.

Tu opinión es importante para mi, ¿Te ha resultado útil este artículo?

sequelize.query() devuelve dos veces el mismo resultado

Pongamos, por ejemplo que tenemos esta simple consulta:

const sessions = await Session.sequelize?.query( 'SELECT * FROM sessions' )

En este caso la constante sessions será algo como:

[
    {
        "id": "",
        "createdAt": "",
        ...
    },
    {
        "id": "",
        "createdAt": "",
        ...
    },
    ...
],
[
    {
        "id": "",
        "createdAt": "",
        ...
    },
    {
        "id": "",
        "createdAt": "",
        ...
    },
    ...
]

Esto se debe a que nos está devolviendo metadata (que en el caso de mysql no afecta, son dos arrays iguales).

Para evitar que nos devuelva dos arreglos tenemos que pasarle a la consulta el parámetro:

{ type: QueryTypes.SELECT }
// O, depende de la importación que tengamos
{ type: Sequalize.QueryTypes.SELECT }

como argumento a «query«.

Con lo que la consulta nos quedaría algo parecido a:

const sessions = await Session.sequelize?.query( 
    'SELECT * FROM sessions',
    { type: QueryTypes.SELECT }
)

Happy code 👨‍💻🎉


Tu opinión es importante para mi, ¿Te ha resultado útil este artículo?

Your serialized closure might have been modified and it’s unsafe to be unserialized. Make sure you use the same security provider, with the same settings, both for serialization and unserialization.

Error largo/raro de Laravel

¿Por qué se produce esto?

Seguramente se haya modificado la APP_KEY.

Si tienes en el env viejo, reemplázalo por el nuevo.


Tu opinión es importante para mi, ¿Te ha resultado útil este artículo?

Class ‘Laravel\Scout\ScoutServiceProvider’ not found

Después de borrar la el paquete de scout de Laravel nos aparece este error:

In ProviderRepository.php line 208:

Class ‘Laravel\Scout\ScoutServiceProvider’ not found

También en nuestra api tenemos errores:

{
«message»: «Class ‘Laravel\\Scout\\ScoutServiceProvider’ not found»,
«exception»: «Symfony\\Component\\Debug\\Exception\\FatalThrowableError»,
«file»: «/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php»,
«line»: 208,
«trace»: [
{
«file»: «/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php»,
«line»: 144,
«function»: «createProvider»,
«class»: «Illuminate\\Foundation\\ProviderRepository»,
«type»: «->»
},

]

✅ Hemos desinstalado el paquete

✅ Hemos hecho un dump autoload

composer dump-autoload

Sigue el mismo error…

✅ Hemos limpiado la cache con:

php artisan config:clear

Y sigue el mismo error…

🤯

Para solucionar el error nos tenemos que dirigir a:

bootstrap > cache > config.php

Y borramos la importación que nos está dando error o directamente borramos todo el archivo (bootstrap/cache/config.php):

Laravel\\Scout\\ScoutServiceProvider

del bloque:

      ...
      32 => 'App\\Providers\\MediaServiceProvider',
      33 => 'Laravel\\Scout\\ScoutServiceProvider',
    ),
    'aliases' => 
    array (
      'App' => 'Illuminate\\Support\\Facades\\App',
      ...

Y listo, volvemos a ejecutar el dump autoload

composer dump-autoload

A funcionar (:


Tu opinión es importante para mi, ¿Te ha resultado útil este artículo?