Capítulo 4 del Módulo 2 API Rest | BackEnd

Modelos y relaciones

Modelos: User, Categoria, Empresa y relaciones | Implementación de Modelos como User, Categoria y Empresa además de las relaciones de integridad referencial. Migración para obtener las tablas en MYSQL

Modelos 

  1. Modelo User
  2. Modelo Categoría
  3. Modelo Empresa
  4. Relaciones
  5. Conexión BD
  6. Migración

Modelo User

public function up(): void
    {
        Schema::create('users', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
    }
 protected $fillable = [
        'name',
        'email',
        'password',
    ];

Modelo Categoría

public function up(): void
    {
        Schema::create('categorias', function (Blueprint $table) {
            $table->id();
            $table->string("nombre",25);
            $table->string("slug",25)->unique();
            $table->text("descripcion")->nullable();
            $table->boolean("menu")->default(0);
            $table->integer("orden")->default(1);
        });
    }

class Categoria extends Model
{
    use HasFactory;
    protected $guarded = [];
    public $timestamps = false;
   
}

 

Modelo Empresa

public function up(): void
    {
        Schema::create('empresas', function (Blueprint $table) {
            $table->id();
            $table->string("nombre",50);
            $table->string("email",50)->unique();
            $table->string("telefono",9);
            $table->string("direccion",50);
            $table->string("website",50)->nullable();
            $table->string("facebook",50)->nullable();
            $table->string("youtube",50)->nullable();
            $table->string("tiktok",50)->nullable();
            $table->text("descripcion")->nullable();
            $table->string("urlfoto",50)->nullable();
            $table->boolean("publicado")->default(0);
            $table->integer("orden")->default(1);
            $table->integer("visitas")->default(1);
            $table->foreignId('categoria_id')->references('id')->on('categorias')->onUpdate('cascade')->onDelete('cascade');
            $table->foreignId('user_id')->references('id')->on('users')->onUpdate('cascade')->onDelete('cascade');
            $table->timestamps();
        });
    }
class Empresa extends Model
{
    use HasFactory;
    protected $guarded = [];
}

Relaciones

class Empresa extends Model
{
    use HasFactory;
    protected $guarded = [];

    public function categoria()
    {
        return $this->belongsTo(Categoria::class);
    }
    
    public function user()
    {
        return $this->belongsTo(User::class);
    }
}
class User extends Authenticatable
{
    use HasApiTokens, HasFactory, Notifiable;
....

    public function empresas()
    {
        return $this->hasMany(Empresa::class);
    }

    
}
class Categoria extends Model
{
    use HasFactory;
    protected $guarded = [];
    public $timestamps = false;

    public function empresas()
    {
        return $this->hasMany(Empresa::class);
    }
}

Conexión BD

DB_DATABASE=dbdiremp
DB_USERNAME=root
DB_PASSWORD=

Migración

php artisan migrate

 


1,839 visitas

Capítulo 5 – Rutas y Controladores »

Descarga el código del proyecto

Descarga el código fuente del proyecto adquiriendo el curso completo

Comprar