Cambiar nombres de tablas por defecto

En un proyecto que estoy montando tengo que usar una base de datos donde ya hay tablas por lo que he decidido ponerles a todas las tablas del proyecto en prefijo bk_ para poder tenerlas organizadas. El problema está en las tablas que genera Laravel por defecto, así que toca cambiar un poco la configuración para que use las nuevas.
Lo primero es en las migraciones, eso es sencillo, simplemente modificar los nombres en los ficheros de creación de la tabla users, password_reset y notifications. Despues podemos correr las migraciones para que cree las nuevas tablas.
Después vamos a cambiar los ficheros donde aparece la referencia a la tabla users y cambiarlo por bk_users:

App/Http/Controllers/Auth/RegisterController.php:

  'email' => ['required', 'string', 'email', 'max:255', 'unique:bk_users'],

App/User.php:

 protected $table = 'bk_users';

La referencia a la tabla passwords_reset está en el fichero config/auth.php:

'passwords' => [
        'users' => [
            'provider' => 'users',
            'table' => 'bk_password_resets',
            'expire' => 60,
        ],
    ],

Por ultimo las notificaciones, que es un pelín más enrevesado. Lo primero es crear un nuevo modelo que será el que relacionaremos luego con los usuarios:

php artisan make:model DatabaseUserNotification

Y el modelo quedaría de la siguiente forma:

namespace App;
use Illuminate\Notifications\DatabaseNotification;
class DatabaseUserNotification extends DatabaseNotification 
{
     protected $table = 'bk_notifications';
}

Luego en el modelo User vamos a sobreescribir las notificaciones para que tiren de este nuevo modelo:

public function notifications()
    {
        return $this->morphMany(DatabaseUserNotification::class, 'notifiable')->orderBy('created_at', 'desc');
    }

Dejar un comentario?

0 Comentarios.

Deje un comentario


NOTA - Puede usar estosHTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.