Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

Curso de Introducción a Laravel 8

Curso de Introducción a Laravel 8

Profesor Italo Morales F

Profesor Italo Morales F

Configuración inicial

6/21
Recursos

Aportes 32

Preguntas 11

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Si no usan el instalador de laravel, los pasos serian los siguientes:

Creamos el proyecto

composer create-project --prefer-dist laravel/laravel intro-laravel8-platzi

Nos ubicamos en la carpeta del proyecto

cd  intro-laravel8-platzi

instalamos Jetstream

composer require laravel/jetstream

Instalamos Livewire

php artisan jetstream:install livewire

Instalamos y corremos las dependencias

npm install && npm run dev

Ahora estamos listos para comenzar con las migraciones.

Mi aporte a la clase

Creando proyecto una se tiene instalado laravel en el equipo

	laravel new j-livewire-8 --jet

Seleccionamos 0 para livewire

Creando modelo de categorías

	php artisan make:model Category -mf

Creando modelo de cursos

	php artisan make:model Course -mf

Creando modelo de post

	php artisan make:model Post -mf

Configurando las migraciones

  • Categorias
public function up()
    {
        Schema::create('categories', function (Blueprint $table) {
            $table->id();

            $table->string('name');

            $table->timestamps();
        });
    }

  • Cursos
public function up()
    {
        Schema::create('courses', function (Blueprint $table) {
            $table->id();
            $table->unsignedBigInteger('user_id');
            $table->unsignedBigInteger('category_id');

            $table->string('name');
            $table->string('slug');
            $table->string('img');
            $table->text('description');

            $table->timestamps();

            $table->foreign('user_id')->references('id')->on('users');
            $table->foreign('category_id')->references('id')->on('categories');
        });
    }

  • Post
public function up()
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->id();
            
            $table->unsignedBigInteger('course_id');

            $table->string('name');
            $table->boolean('free')->default(0);            

            $table->timestamps();
            $table->foreign('course_id')->references('id')->on('courses');
        });
    }

Recuerden que para poder usar el comando laravel new necesitan tener el CLI de Laravel instalado en sus computadoras, la página oficial de Laravel tiene toda la documentación necesaria para instalarlo:
.
https://laravel.com/docs/8.x/installation
.
Sin embargo, aquí les explico la instalación en Linux y WSL:
.
Para este punto ya deben tener composer instalado, así que simplemente ejecutan el siguiente comando:
.

composer global require laravel/installer

Esto instalará Laravel de manera global, por último deben modificar la variable $PATH para incluir a composer:
.

PATH="$PATH:$HOME/.config/composer/vendor/bin"

Con Laravel 8 tenemos una nueva forma para declarar las foreign keys en nuestras migraciones, en lugar de usar unsignedBigInteger y luego registrar la foreign key, podemos hacerlo todo en una sola línea con:

$table->foreignId('user_id')->constrained('users');

No es necesario pasar la tabla como parámetro al método constrained() si los nombres de nuestras tablas siguen las convenciones de Laravel, pero para estar seguros y evitar errores podemos colocarlo.

Configuración inicial


Don´t repeat yourseft!

Para poder utilizar el comando Laravel new tienes que tener instalado el CLI de Laravel en la computadora. Si este no es tu caso, y instalas todo por la consola de Linux o WSL, utilizas la instalación estándar con Composer.

composer create-project --prefer-dist laravel/laravel laravel-8 && cd laravel-8

Después instalamos Jetstream

composer require laravel/jetstream

Y al final, utilizamos los comandos de artisan para descargar livewire

php artisan jetstream:install livewire

Para finalizar corremos los comandos npm y hacemos un migrate a la base de datos que hemos creado para el proyecto y especificado en el archivo .env

npm install && npm run dev

php artisan migrate

Aprende más de Live-Wire Te dejara 🤯 (te lo aseguro)

Otra forma de crear las llaves foráneas es: $table->foreignId('user_id')->constrained()

Cosas que descubri de laravel 8
Efectivamente tienen un login:
127.0.0.1:8000/login
pero la tabla esta vacia, ejecute el comando:

php artisan migrate

pero no crea un usuario dentro de la tabla users
Pero podemos ejecutar

php artisan tinker

Despues saldra algo como una shell interactiva, entonces ponemos

\App\Models\User::create([‘name’=>‘admin’,‘email’=>‘admin@admin.com’,‘password’=> bcrypt(‘password’)]);

Listo, tendremos un usuario dentro de laravel para probar

Vengo del futuro y en el siguiente vídeo se siguen haciendo cosas a nivel de estructura de datos con los factories.
Les recomiendo, si son muy nuevos, ejecutar las migraciones que se hicieron en este vídeo de una vez, para que no sigan avanzando sin saber si tienen errores y puedan corregirlos antes de seguir escribiendo código:

php artisan migrate

Buena clase, por aquí les dejo un link de buenas practicas en la creación de elementos en Laravel de esta forma van creando un estándar, y para el orden en proyectos grandes funciona muy bien:
https://github.com/alexeymezenin/laravel-best-practices/blob/master/spanish.md

Una forma corta en la que podemos definir las relaciones dentro de nuestras migraciones es la siguiente:

$table->foreignId('user_id')->constrained();
$table->foreignId('category_id')->constrained();

Solo basta con escribir eso y laravel ya sabe a que tabla nos referimos. 😃

Por primera vez nada me dio error y todo salio correcto

Para quienes usan docker.

docker run --rm \
  -v $(pwd):/opt \
  -w /opt \
  laravelsail/php80-composer:latest \
  bash -c "laravel new aweb-constructora --jet --stack=livewire"

excelente clase

¿Se necesita tener algún servidor local como XAMPP?

Revisar antes
php -v (tecla Enter)
composer -version (tecla Enter)

Para abrir el proyecto en VScode si realizamos la instalacion con composer, inicialmente lo tengo en la raiz de todos los proyectos(en laragon) en consola nos dirijimos a donde quedo el proyecto:

C:\laragon\www
λ cd laravel8-platzi

Y luego presiono code ./ y con eso me abre toda la estructura de mi proyecto en VSCODE

Es fascinante y a la vez es raro como si fuera mala practica, pero en realidad no, la forma de crear tablas y Db con clases en laravel

Tuve muchos problemas instalando el proyecto por ubuntu, pero laragon me solucionó el problema, se los recomiendo por si no pueden trabajar desde ubuntu

Esta muy bien explica, la clase está compacta para invitar al estudiante a leer la documentación de Laravel, 10 de 10.

    public function up()
    {
        Schema::create('courses', function (Blueprint $table) {
            $table->id();
            $table->unsignedBigInteger('user_id');
            $table->unsignedBigInteger('category_id');

            $table->string('name');
            $table->string('slug');
            $table->string('image');
            $table->text('description');


            $table->timestamps();

            $table->foreign('user_id')->references('id')->on('users');
            $table->foreign('category_id')->references('id')->on('categories');
        });
    }

Adiciona Soft Delete a todas las tablas.
Para cuando se elimine un registro de la tabla no se elimine físicamente.
Se tiene que adicionar el trait SoftDeletes a cada modelo y el campo softDeletes en cada migración, todos los detalles en la documentación.

  • Modelo -> Es la representación de la tabla dentro del sistema de Laravel.

  • Migraciones-> Es la estructura de una tabla que tenemos que tener dentro de nuestro proyecto.

  • Factory-> Es la estructura de datos que vamos a generar para almacenar datos falsos para poder trabajar y empezar a ver lo que estamos construyendo.

Los comandos que vamos a ejecutar dentro de la terminal, son los siguientes:

laravel new project --jet 

Debemos de recordar que para poder ejecutar este comando, tenemos que tener instaladas las siguientes tecnologías:

  • Git (Sistema de control de versiones)
  • Xampp, Mamp, Laragon:
    • PHP en su versión >7.4
    • MySql
    • Interprete de PHP el cual puede ser apache
  • Composer (Manejador oficial de paquetes de PHP)
  • Instalador de Laravel
  • El editor de código que utilizaremos es VSCode
  • Node.js, ya que vamos a trabajar con NPM

Al indicar dentro del comando la bandera --jet le indicamos al instalador de Laravel que estaremos trabajando con la tecnología de JetStream, lo que significa que al ejecutar esto nos preguntara si deseamos trabajar con inertial o livewire, en este caso estaremos usando livewire, y también nos preguntara si queremos trabajar con equipos por el momento no lo haremos así que indicamos que no.


php artisan make:model Model -mf

Y con este comando vamos a crear un nuevo modelo al cual en este caso lo estamos llamando “Model”, y con las banderas -mf le estamos indicando que nos cree junto con ese modelo la migración correspondiente y su factory, debemos recordar que la migración va en plural, el modelo en singular con la primera letra en mayúsculas y el factory de igual manera en singular seguido del identificativo de la palabra “Factory”, lo curioso de esto es que Laravel se encarga de todas estas reglas al momento de ejecutar este comando.

Como sugerencia, para una mejor compresión del sitio a desarrollar, seria bueno agregar como recurso el modelo de la base de datos o modelo ER que se va a recrear mediante las migraciones configuradas.

Excelente explicación!

Porque si accedo desde otro computador a la ip no me cargan los archivos css

Existe una herramienta que agiliza el proceso de creación de un nuevo proyecto sin la necesidad de ejecutar ningún comando en la terminal. Además de ofrecer un entorno de desarrollo para PHP entre muchas otras: https://laragon.org/

Buenas tardes compañeros, una consulta en cuanto a la instalación de laravel y es que para la versión “8.*” esta pide según la documentación oficial el uso de Docker alguien sabe porque y si debe ser así tal cual para poder usar la versión 8 de laravel.

Hola comunidad, tengo un problema, cuando creo un nuevo proyecto de laravel tengo el siguiente error:

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - phpunit/phpunit[9.3.3, ..., 9.5.x-dev] require ext-dom * -> it is missing from your system. Install or enable PHP's dom extension.
    - Root composer.json requires phpunit/phpunit ^9.3.3 -> satisfiable by phpunit/phpunit[9.3.3, ..., 9.5.x-dev].

To enable extensions, verify that they are enabled in your .ini files:
    - /etc/php/8.0/cli/php.ini
    - /etc/php/8.0/cli/conf.d/10-opcache.ini
    - /etc/php/8.0/cli/conf.d/10-pdo.ini
    - /etc/php/8.0/cli/conf.d/20-calendar.ini
    - /etc/php/8.0/cli/conf.d/20-ctype.ini
    - /etc/php/8.0/cli/conf.d/20-exif.ini
    - /etc/php/8.0/cli/conf.d/20-ffi.ini
    - /etc/php/8.0/cli/conf.d/20-fileinfo.ini
    - /etc/php/8.0/cli/conf.d/20-ftp.ini
    - /etc/php/8.0/cli/conf.d/20-gettext.ini
    - /etc/php/8.0/cli/conf.d/20-iconv.ini
    - /etc/php/8.0/cli/conf.d/20-mbstring.ini
    - /etc/php/8.0/cli/conf.d/20-phar.ini
    - /etc/php/8.0/cli/conf.d/20-posix.ini
    - /etc/php/8.0/cli/conf.d/20-readline.ini
    - /etc/php/8.0/cli/conf.d/20-shmop.ini
    - /etc/php/8.0/cli/conf.d/20-sockets.ini
    - /etc/php/8.0/cli/conf.d/20-sysvmsg.ini
    - /etc/php/8.0/cli/conf.d/20-sysvsem.ini
    - /etc/php/8.0/cli/conf.d/20-sysvshm.ini
    - /etc/php/8.0/cli/conf.d/20-tokenizer.ini
You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

Alguien me puede ayudar?