sábado, 29 de diciembre de 2018

Laravel Request personalizado: cómo obtener el ID del Modelo basado en Route Model Binding

Resulta que acabas de crear un Request para la validación de un formulario y ejecutaste un comando de php artisan para hacer un Request:


php artisan make:request tests\\books\\UpdateBookRequest

Entonces, has creado un nuevo Request, pero resulta que en tus validaciones, necesitas tener a la mano el ID de tu modelo.

En mi caso, necesito el ID para especificar a la regla de UNIQUE, cuando estoy actualizando un registro, a que no considere el ID en cuestión, porque si no, Laravel Validation me saldrá con que ese registro ya ha sido tomado.

Es decir, en mis reglas de validación, yo tenía el siguiente código:
$request->validate([
            'title' =>  'required',
            'isbn'  =>  'required|unique:books,isbn,'.$book->id,
            'description' =>    'max:2000',
        ]);

Pero después de crear mi Request, ahora cómo le hago para acceder a ese ID?

Ah pues, debo hacer la siguiente modificación
    public function rules()
    {
        $book = $this->route('book');//https://stackoverflow.com/a/49745633/1883256
        return [
            'title' =>  'required',
            'isbn'  =>  'required|unique:books,isbn,'.$book->id,
            'description' =>    'max:2000',
        ];
    }

Referencias: https://stackoverflow.com/a/49745633/1883256.

Cómo añadir tipo de archivo de Laravel Blade a PHPStorm

Normalmente estaba yo buscando cómo agregar un nuevo archivo blade de Laravel en PHPStorm. Resulta que no hay como tal, por lo que logré descubrir cómo agregar el tipo de archivo de Laravel Blade dentro del menú de creación de nuevo archivo blade.

Hay que poner botón derecho y elegir "New". Elegimos la opción "Edit File Templates... "

Cómo añadir tipo de archivo de Laravel Blade a PHPStorm 1 
Le damos un nombre, en este caso yo puse "Laravel Blade" y como extensión o tipo de archivo "blade.php".
Cómo añadir tipo de archivo de Laravel Blade a PHPStorm 2 
Y pues damos en OK y ya quedó.


Cómo añadir tipo de archivo de Laravel Blade a PHPStorm 3 

Cómo añadir tipo de archivo de Laravel Blade a PHPStorm 4 


Es todo 😁!

viernes, 28 de diciembre de 2018

Laravel blade pagination cómo cambiar el CSS

Laravel por default utiliza el framework CSS de Bootstrap para la paginación. Pero ¿qué pasa si estás utilizando otro Framework, llámese Bulma, Material Design, Foundation, Semantic UI, etc?

Lo que tienes que hacer básicamente, es pedirle a Laravel que genere un archivo blade en donde se pueda llevar a cabo las modificaciones CSS que necesites para modificar los enlaces de la paginación:

php artisan vendor:publish --tag=laravel-pagination

Laravel generará una nueva carpeta de archivos blade dentro de la carpeta /resources/views/pagination el cual contendrá varios archivos CSS de diversos Frameworks. En este caso estoy utilizando "Semantic UI", por lo que, para decirle a Laravel que la paginación la quiero con dicho Framework, hay que indicarlo en el Service Provider; es decir, modificar el archivo app\Providers\AppServiceProvider.php

    public function boot()

    {

        //Default Paginator

        Paginator::defaultView('vendor.pagination.semantic-ui');
    }


Referencias:
https://laravel.com/docs/5.7/pagination#manually-creating-a-paginator

viernes, 21 de diciembre de 2018

Actualizar Laravel Homestead en Mac Mojave - resumido

Te puede interesar:

Acciones previas

  1. Primero toma nota de las bases de datos que debes respaldar. En mi caso tengo instalado el phpmyadmin, por lo que, utilizando dicho programa, realizo mis respaldos.
  2. Haz una copia de tu archivo Homestead.yaml que se encuentra generalmente dentro del directorio
    1
    /home/user/Homestead/Homestead.yaml

Procedimiento

Dentro del directorio mencionado, paramos la máquina virtual


$ vagrant halt

Nos vamos un directorio arriba


$ cd ..

Checamos el estado de vagrant


$ vagrant global-status

Podemos aprovechar aquí para actualizar Vagrant y VirtualBox. En este caso, estoy actualizando a Vagrant 2.2.2 y a VirtualBox 6.0.  Se recomienda reiniciar la computadora una vez actualizados.

Para comprobar las versiones con las que contamos tanto de Vagrant como de VirtualBox:


$ vagrant -v

$ vboxmanage --version

Ahora sí, vamos a destruir el box de laravel homestead que tenemos actualmente:


$ vagrant destroy

Si no destruye nada, entonces debes especificar el ID de la máquina a destruir, dicho ID lo visualizas con

$ vagrant global-status


$ vagrant destroy [identificador]

Suponiendo que ya tienes una copia de la carpeta /Homestead en otro lado o del archivo de Homestead.yaml, procedemos a borrar la carpeta:


$ rm -rf Homestead

Ahora listamos las cajas de vagrant con


$ vagrant box list

Borramos todas, bueno, en mi caso, no las necesito ya. En mi caso borro la de la versión 6.3.0


$ vagrant box remove laravel/homestead --box-version=6.3.0

Reinstalación de Laravel Homestead en MacOS Mojave

Estando en el directorio Home, ejecutamos el siguiente comando


$ vagrant box add laravel/homestead

Nos pedirá especificar qué VM vamos a utilizar, en mi caso es la opción 3) de VirtualBox. Y esperamos a que baje.

==> box: Successfully added box 'laravel/homestead' (v6.4.0) for 'virtualbox'!

Siguiendo dentro del directorio /home/user/ aplicamos el siguiente comando:
$ git clone https://github.com/laravel/homestead.git ~/Homestead

El cual va a crear una nueva carpeta llamada /Homestead. Vamos a esa carpeta:

$ cd Homestead

Ahora ejecutamos los siguientes comandos:
$ git checkout v7.18.0
$ bash init.sh

Este último creará el archivo Homestead.yaml el cual tendremos que editar de nuevo a como lo teníamos anteriormente. Es por ello que respaldamos ese archivo previamente.

Finalmente, para probar que todo funciona, ejecutamos (dentro del directorio /Homestead):
$ vagrant up

Entra a tu máquina virtual con

$vagrant ssh

Para salir:
$ exit

Para detener la máquina virtual de Laravel Homestead:
$ vagrant halt

Referencias:

https://laravel.com/docs/5.7/homestead#installation-and-setup



martes, 18 de diciembre de 2018

¿Cuándo volverá a ser campeón el cruz azul?

Yo creo que cuando el cruz azul esté jugando bien y que el América no llegue a la final, ya es una buena señal de que ahora sí será campeón el Cruz Azul.

Suena sencilla mi respuesta, pero detrás hay una combinación muy compleja de intereses (conflictos de interés) de maldiciones, de auto percepción, de sugestión, etc.

¿Hasta cuándo jugará el quinto partido de un mundial la selección mexicana de futbol?

Yo creo que hasta el mundial del 2026.

En 2022 será más de lo mismo.

Ya hemos visto que no sirve de nada tener a jugadores mexicanos en Europa.

La selección mexicana de futbol llegará al quinto partido en 2026. En 2022 no lo hará, eso ya es histórico:

México 86 : eliminados en el quinto partido [LOCAL]
USA 94 : eliminados en el cuarto partido.
France 98: eliminados en el cuarto partido.
Japón & Corea 2002: eliminados en el cuarto partido.
Alemania 2006: eliminados en el cuarto partido.
Sudáfrica 2010: eliminados en el cuarto partido.
Brasil 2014: eliminados en el cuarto partido.
Rusia 2018: eliminados en el cuarto partido.
Qatar 2022: eliminados en el cuarto partido.
Mexico-USA-Canada 2026: eliminados en el quinto partido. [LOCAL]

Por lo que la respuesta a la pregunta de ¿Hasta cuándo jugará el quinto partido de un mundial la selección mexicana de futbol?
Respuesta: hasta el mundial del 2026.

Históricamente ¿tiene sentido realmente ir a los mundiales de futbol para apoyar a la selección mexicana y frustrarse?
Como aficionado a la selección mexicana, deberían renunciar a la selección mexicana tal y como este aficionado (entrando en razón) lo hace:


Ir a Qatar 2022 será tirar tu dinero a la basura. Mejor vete a la playa a disfrutar!

martes, 11 de diciembre de 2018

Cómo eliminar un usuario y todos sus archivos y privilegios en CentOS 7

Básicamente hay dos pasos

1.- Borrar el usuario de CentOS 7

De preferencia, nos conectamos como root
$ su

Lo siguiente borra el usuario, así como todos sus archivos.
#userdel -r [nombreDeUsuarioABorrar]

Si quieres conservar sus archivos, quita el -r
#userdel [nombreDeUsuarioABorrar]

2.- Eliminar los privilegios del usuario de CentOS 7

Ahora hay que editar el siguiente archivo de los privilegios:

#visudo

Se abrirá un archivo de configuración en donde deberás localizar el [nombreDeUsuarioABorrar] y borrar la línea, por ejemplo:
(teclear primero la tecla i)

[nombreDeUsuarioABorrar]   ALL=(ALL:ALL) ALL

Una vez borrada esa línea, presionar la tecla "Esc", luego la tecla : seguida de w y q, es decir:
:wq

donde w = write
y q = quit


Saludos.
 

Tags