DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=premios_nobel
DB_USERNAME=root
DB_PASSWORD=
Lo primero del todo el Laravel trae un error por defecto a la hora de hacer el migrate que hay que subsanar, en el fichero:
\app\Providers\AppServiceProvider.php añadir:
use Illuminate\Support\Facades\Schema;
Y editar la función boot con:
public function boot() {
Schema::defaultStringLength(191);
}
CREAR LA TABLA USERS POR DEFECTO:
php artisan migrate:install
php artisan migrate
AÑADIR UN USERS AUTOMATICAMENTE A LA BD:
php artisan make:seeder UsersTableSeeder
Esto te genera en database/seeds/ el fichero UsersTableSeeder que hay que modificar la funcion "run" con;
factory(App\User::class, 50)->create()->each(function ($user) {
$user->posts()->save(factory(App\Post::class)->make());
});
Ojo: Hay que asegurarse que tengas incluidas las librerias:
use Illuminate\Database\Seeder;
use Illuminate\Support\Str;
use Illuminate\Support\Facades\DB;
En la bd (con el phpmyadmin por ejemplo) añadir a la tabla users el campo isAdmin y que sea booleano y por defecto 0. También cambiarlo en el modelo de Users (todos los módelos estan en /app/)
Finalmente ejecutarlo para que se metan esos 50 usuarios aleatorios en la BD:
php artisan db:seed --class=UsersTableSeeder
Vamos a meter el usuario administrador, en el run quitamos lo de antes y ponemos a pelo:
DB::table('users')->insert([
'name' => 'Pepito Pérez',
'email' => 'pepito.perez@gmail.com',
'password' => '1234',
'isAdmin' => 1,
]);
Y volvemos a ejecutar otra vez:
php artisan db:seed --class=UsersTableSeeder
Si en algún momento necesitamos recompilar el composer porque se hayan hecho cambios:
composer dump-autoload
Instalar automáticamente toda la estructura del Login:
php artisan make:auth
Por defecto las rutas de los css y los js están mal porque hay que modificar el fichero resources/views/layouts/app.blade.php:
<link href="{{asset('/css/app.css')}}" rel="stylesheet">
<script src="{{asset('/js/app.js')}}"></script>
Para comprobar que está logueado como Admin por ejemplo en el controller de app/Http/Controllers/HomeController:
if (auth()->check()) {
if (auth()->user()->isAdmin) {
return view('administracion');
}
else {
return view('home');
}
}
Luego desde el controller para saber si está logueado o no:
use Illuminate\Support\Facades\Auth;
public function xxx() {
$user = Auth::user();
if(!isset($user)) { // no está logueado
return redirect('login');
}
return view('...');
}
No hay comentarios:
Publicar un comentario