Laravel: agregar campos a User

En este post te mostraré cómo puedes agregar campos de la tabla “users” en Laravel para así poder añadir algunos campos al modelo User. Explicado con otras palabras vamos a modificar la tabla de usuarios.

Con este modelo me refiero al usuario que se usa para iniciar sesión y en general hacer la autenticación en Laravel. Veremos cómo agregar otro campo además de los que ya existen.

Modificar tabla

Comencemos modificando la tabla, y para ello vamos a crear una migración. En mi caso agregué a mis usuarios un campo llamado “Nombre del establecimiento” por lo que generé la migración así:

php artisan make:migration AgregarNombreEstablecimientoAUsuarios --table=users

No olvides especificar el nombre de la tabla que en este caso es users. Ya dentro de la migración, agregué la columna y le coloqué un valor por defecto. Se ve así:

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class AgregarNombreEstablecimientoAUsuarios extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('users', function (Blueprint $table) {
            $table->string("nombre_establecimiento")->default("");
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('users', function (Blueprint $table) {
            $table->dropColumn("nombre_establecimiento");
        });
    }
}

Ahora migramos con php artisan migrate y nuestra tabla de usuarios debería estar modificada.

Modificar modelo User

La tabla de usuarios de Laravel ya está modificada, ahora falta modificar el modelo. Vamos a modificar sus fillables para que así podamos enviarle los valores desde el formulario.

Abrimos app\User.php y en fillables agregamos la propiedad recién agregada a la tabla. En mi caso queda así:

<?php
protected $fillable = [
    'name', 'email', 'password', 'nombre_establecimiento',
];

Con eso es suficiente; ahora si usas los controladores resource y los fillables, solo es cuestión de enviar también el campo nombre_establecimiento al registrar al usuario. Te mostraré un ejemplo.

Enviando valor en formularios

En mi caso utilizo fillables y resources para hacer el desarrollo más rápido. Sé que son cosas distintas, pero en conjunto ahorran bastante código. Ahora bien, solo hay que agregar el campo por ejemplo al registrar:

<div class="form-group">
    <label class="label">Nombre establecimiento</label>
    <input required autocomplete="off" name="nombre_establecimiento" class="form-control"
           type="text" placeholder="Nombre establecimiento">
</div>

Con eso estaría llenándose el modelo y guardándose con el dato recién añadido.

Por cierto, si obtienes todos los usuarios con User::all() ya puedes acceder e imprimir la propiedad nombre_establecimiento o como se llame la propiedad que agregaste.

¿Te gusta Laravel? mira más tutoriales en mi blog.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *