Post Top Ad

Your Ad Spot

martes, 15 de septiembre de 2020

Laravel tiene muchos y pertenece al tutorial

 

Las relaciones de Laravel hasMany y ApplicaTo son una característica fantástica del marco. Las relaciones, y específicamente las relaciones elocuentes, son una característica muy popular de Laravel. El tutorial de relaciones de muchos a muchos aquí en Vegibit es siempre la publicación número uno o dos más popular, como puede ver en el lado derecho de esta página. En este episodio, vamos a mostrar algo de amor a las relaciones hasMany y perteneceTo que proporciona Eloquent. Vamos a rompernos.


Las relaciones para modelar

Hay un montón de formas diferentes de explorar estas relaciones. Una publicación de blog con muchos comentarios. Un comentario que pertenece a un usuario. Una publicación de blog que tiene muchas categorías. Entiendes la idea. Para este ejemplo, exploraremos el concepto de usuario y sus tweets. Como puede imaginar, exploraremos el concepto de Userque tiene muchos tweets. Además, tendremos un Tweetmodelo donde podremos ver que un tweet individual pertenece a un UserDebería ser un ejemplo divertido.


Configurar la base de datos

En primer lugar, necesitamos una base de datos para almacenar a nuestros usuarios y tweets. Tratar con los usuarios es bastante fácil, ya que se trata de una única tabla. Sin embargo, los tweets son más detallados. Tendremos 6 mesas en total, que incluyen userstweet_urlstweet_tagstweet_retweetstweet_mentions, y tweetsAquí están las migraciones para que esto suceda. Por supuesto, estamos creando esto en el Laravel Homestead más excelente que cubrimos en este episodio.

create_users_table.php fuente

create_tweets_table.php fuente

create_tweet_mentions_table.php fuente

create_tweet_retweets_table.php fuente

create_tweet_tags_table.php fuente

create_tweet_urls_table.php fuente


Necesitamos algunos usuarios y tweeets

Si vamos a modelar la relación entre UsersTweets, ¡entonces necesitaremos algunos con los que trabajar! Para ello, usaremos el paquete más excelente proporcionado por thujohn . Si desea seguir adelante, deberá configurar una aplicación en las herramientas de desarrollo de Twitter para hacerlo. En lugar de entrar en detalles sobre cómo configurarlo, consulte el enlace anterior o simplemente busque en Google, hay un montón de ejemplos de cómo configurar su aplicación. Ahora, exploraremos cómo configurar las rutas, los controladores y los modelos para alcanzar nuestros objetivos. Estos siguientes ejemplos de código pueden contener o no "mejores prácticas", ¡es solo un primer intento rápido para hacer que algunos tweets funcionen!


El botón de inicio de sesión de Twitter

Necesitaremos una forma de iniciar sesión en Twitter. En un esfuerzo de rapidez, simplemente hackearemos la vista de bienvenida enviada para agregar un enlace a la ruta de inicio de sesión de nuestra aplicación. Tenga en cuenta que nos aseguraremos de dejar la llamada con una cita inspiradora, para mantenernos inspirados en todo momento.

La fuente de la vista de bienvenida

Iniciar sesión en Twitter


Las rutas a utilizar

Aquí está el archivo de rutas para usar en este ejemplo. Como puede ver, es solo una versión ligeramente modificada del archivo de ruta que se envía con Laravel. Configuramos las rutas para el inicio de sesión y la devolución de llamada desde Twitter, así como una ruta con la que trabajarán algunos tweets. Pondremos todos estos métodos en un controlador de Twitter y lo llamaremos un día.

fuente de rutas.php


Los métodos del controlador de Twitter

Aquí está la fuente de nuestro controlador de Twitter. Si lo sigue, debería ser bastante sencillo. Iniciamos sesión en Twitter, se procesa la devolución de llamada, Eloquent crea un nuevo usuario, el usuario se autentica y, finalmente, simplemente lo redireccionamos al gettweetsmétodo para buscar algunos tweets para trabajar. Lea los comentarios si algo de esto le resulta un poco extraño. Como referencia, usamos Eloquent para crear un nuevo User, y Query Builder de Laravel para manejar la inserción de todos los tweets.

Fuente TwitterController.php