09.-Laravel Tutorial en Español [eloquent] ¡¡En tiempo récord⚡!!
INTRODUCCIÓN
En este tutorial vamos a trabajar con eloquent y no se preocupen no es una nueva sintaxis o un nuevo lenguaje, eloquent es parte de laravel y se trabaja de la misma forma que se ha venido trabajando laravel y php.
Eloquent es una herramienta que nos va a ayudar a agilizar nuestras conexiones a las bases de datos y recuperar registros. En particular lo que aremos en este tutorial es darle seguimiento al tutorial anterior y vamos manejar los datos estáticos y los vamos a hacer dinámicos a través de nuestra base de datos (En tiempo récord ?).
PROCEDIMIENTOS
En la terminal nos movemos al path de laravel asi:
cd /var/www/html/laravel
Ejecutamos este comando:
php artisan make:model Producto -m
Esto no crea 2 archivos
app/Producto.php (Nuestro modelo)
database/migrations/fecha_hash_create_productos_table.php (Archivo util para la migracion)
Abrimos database/migrations/fecha_hash_create_productos_table.php y agregamos etas lineas:
$table->string('nombre'); $table->text('descripcion');
para que quede asi:
<?php use IlluminateSupportFacadesSchema; use IlluminateDatabaseSchemaBlueprint; use IlluminateDatabaseMigrationsMigration; class CreateProductosTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('productos', function (Blueprint $table) { $table->bigIncrements('id'); $table->string('nombre'); $table->text('descripcion'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('productos'); } }
Ejecutamos la migracion asi:
php artisan migrate
Vamos a phpmyadmin (o gestor de bd que usemos) y agregamos registros (los que queramos)
Vamos al archivo app/Http/Controllers/controlador.php agregamos la linea:
<?php use AppHttpControllers;
//Agregamos esta linea
use App;
Y y sustituimos la linea:
$productos=['mesas','sillas','manteles'];
por
$productos=AppProducto::all();
Y en el archivo laravel/resources/views/lista.blade.php y sustituimos
<a href="{{ route('lista',$producto->nombre) }}" class="btn btn-primary">{{ $producto->nombre }}</a>
por
<a href="{{ route('lista',$producto->nombre) }}" class="btn btn-primary">{{ $producto->nombre }}</a> @if(!empty($nombre)) @if($nombre==$producto->nombre) <!-- Guardamos el nombre y la descripcion seleccionado --> @php ($nombreTem=$nombre) @php ($descripcionTem=$producto->descripcion) @endif @endif
y tambien sustituimos
@if(!empty($nombre)) <!-- Muestra un texto con el nombre de ese producto --> @switch($nombre) @case($nombre=='mesas') <h1>Caracteristicas de {{ $nombre }} </h1> <p> <strong>{{ $nombre }}</strong>Fusce fermentum odio nec arcu. Etiam sollicitudin, ipsum eu pulvinar rutrum, tellus ipsum laoreet sapien, quis venenatis ante odio sit amet eros. Aenean tellus metus, bibendum sed, posuere ac, mattis non, nunc. Donec orci lectus, aliquam ut, faucibus non, euismod id, nulla. Phasellus accumsan cursus velit. Cras non dolor. Aenean viverra rhoncus pede. Aenean massa. Cras varius. </p> @break @case($nombre=='sillas') <h1>Caracteristicas de {{ $nombre }} </h1> <p> <strong>{{ $nombre }}</strong>Fusce fermentum odio nec arcu. Etiam sollicitudin, ipsum eu pulvinar rutrum, tellus ipsum laoreet sapien, quis venenatis ante odio sit amet eros. Aenean tellus metus, bibendum sed, posuere ac, mattis non, nunc. Donec orci lectus, aliquam ut, faucibus non, euismod id, nulla. Phasellus accumsan cursus velit. Cras non dolor. Aenean viverra rhoncus pede. Aenean massa. Cras varius. </p> @break @case($nombre=='manteles') <h1>Caracteristicas de {{ $nombre }} </h1> <p> <strong>{{ $nombre }}</strong> Fusce fermentum odio nec arcu. Etiam sollicitudin, ipsum eu pulvinar rutrum, tellus ipsum laoreet sapien, quis venenatis ante odio sit amet eros. Aenean tellus metus, bibendum sed, posuere ac, mattis non, nunc. Donec orci lectus, aliquam ut, faucibus non, euismod id, nulla. Phasellus accumsan cursus velit. Cras non dolor. Aenean viverra rhoncus pede. Aenean massa. Cras varius. </p> @break @endswitch @endif
por
@if(!empty($nombre)) <h1>Caracteristicas de {{ $nombreTem }} </h1> <p> {{ $descripcionTem }} </p> @endif
Ave que vuela, a la cazuela.