En esta primera entrada vamos a instalar la ultima version disponible de Laravel, que a dia de hoy es Laravel 8. Para continuar con este curso es necesario que tengas conocimientos en PHP, Laravel, HTML, CSS, JS, AJAX y jQuery, no hacen falta conocimientos avanzados de todo pero si soltura programando orientado a objetos y con el patron MVC.
Lo primero es tener instalado composer como habras imaginado, vamos a la consola de comandos y desde la carpeta raiza de nuestro servidor local escribimos:
composer global require laravel/installer
Despues de haberse instalado el instalador de Laravel sin salir de la consola escribimos:
laravel new example-app
Ya tendremos creado el nuevo directorio con todos los archivos y carpetas necesarios para empezar el proyecto. Como ya sabreis hay que configurar el archivo .env para la conexion a la base de datos y el archivo config/app.php para el nombre de la aplicacion y demas.
entramos en el directorio donde se creó el proyecto y vamos a empezar por crear las migraciones (migrate) de Laravel pata la creación de las tablas de la BBDD, de esta manera si hemos de resetear toda la base de datos o empezar de nuevo o que otra persona siga nuestro proyecto tenga la estructura de la base de datos del proyecto y a demás poder crearlas desde la linea de comandos. Vamos con la primera migración, ya que la de la tabla users ya viene hecha por defecto en Laravel y yo personalmente la aprovecho. escribimos
php artisan make:migration AnounciosTable
Con esto se creará nuestro archivo en la carpeta de database/migrations. En este archivo creamos la estructura para la tabla donde irán los anuncios. El archivo quedaría así:
<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class CreateAnouncesTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('anounces', function (Blueprint $table) { $table->engine = 'InnoDB'; $table->increments('id'); $table->unsignedInteger('user_id'); $table->string('type_rent'); $table->float('price', 8, 2); $table->string('min_time_ocupation')->nullable(true); $table->string('payment_period')->nullable(true); $table->integer('meter2')->nullable(true); $table->integer('num_roomms_for_rent')->nullable(true); $table->integer('num_rooms')->nullable(true); $table->integer('num_baths')->nullable(true); $table->float('deposit', 8, 2)->nullable(true); $table->date('available_date')->nullable(true); $table->string('titulo', 255)->nullable(true); $table->mediumText('descripcion')->nullable(true); $table->integer('num_people_in')->nullable(true); $table->string('people_in_job')->nullable(true); $table->string('people_in_sex')->nullable(true); $table->boolean('people_in_tabaco')->nullable(true); $table->boolean('people_in_pet')->nullable(true); $table->string('lookfor_who_job')->nullable(true); $table->string('lookfor_who_sex')->nullable(true); $table->boolean('lookfor_who_tabaco')->nullable(true); $table->boolean('lookfor_who_pet')->nullable(true); $table->string('cauntry_rent')->nullable(true); $table->string('province_rent')->nullable(true); $table->string('city_rent')->nullable(true); $table->string('street_rent')->nullable(true); $table->string('adress_rent')->nullable(true); $table->string('num_street_rent')->nullable(true); $table->string('flat_street_rent')->nullable(true); $table->string('cp_rent')->nullable(true); $table->integer('phone', 10)->nullable(true); $table->boolean('funiture')->nullable(true); $table->boolean('ascensor')->nullable(true); $table->boolean('calefaction')->nullable(true); $table->boolean('balcon')->nullable(true); $table->boolean('terraza')->nullable(true); $table->boolean('gas')->nullable(true); $table->boolean('swiming')->nullable(true); $table->boolean('internet')->nullable(true); $table->boolean('washing_machine')->nullable(true); $table->boolean('fridge')->nullable(true); $table->boolean('kitchen')->nullable(true); $table->boolean('near_bus')->nullable(true); $table->boolean('near_underground')->nullable(true); $table->boolean('near_tren')->nullable(true); $table->boolean('near_school')->nullable(true); $table->boolean('near_airport')->nullable(true); $table->mediumText('observations')->nullable(true); $table->string('foto1')->nullable(true); $table->string('foto2')->nullable(true); $table->string('foto3')->nullable(true); $table->string('foto4')->nullable(true); $table->string('foto5')->nullable(true); $table->timestamps(); $table->foreign('user_id')->references('id')->on('users'); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('anounces'); } }