Herramientas de usuario

Herramientas del sitio


proyectos:registro_comidas

¡Esta es una revisión vieja del documento!


Registro de comidas

Registro diario de las comidas.

Funcionalidades

  • Registro de comidas
    • Día
    • Tipo (desayuno, comida, cena, picoteo)
  • Asociación de comidas a categorías (Postres, Carnes, Pescados, Frutas…)
  • Asociación de comidas a etiquetas
  • Detalle de comida por ingredientes

Estructura de base de datos

Comidas

  • id
  • usuario_id (opcional)
  • nombre
  • descripcion (opcional)
  • fecha
  • calorias
  • tipo (desayuno, comida, cena, tentempié)
  • id_categoria (opcional)
  • lugar (casa, fuera)

Ingredientes

  • id
  • nombre
  • id_categoria
  • calorias_por_100g

Comida_Ingrediente

Tabla que relaciona comidas e ingredientes.

  • id_comida
  • id_ingrediente
  • cantidad (gramos)

Categorías

  • id
  • nombre
  • color?

Etiquetas

  • id
  • nombre
  • slug

Comida_Etiqueta

Tabla que relaciona comidas y etiquetas

  • id_comida
  • id_tag

Herramientas empleadas

Base de datos

Diagrama entidad-relación.

Categorías

Migración para la tabla de las categorías:

php atisan make:migration create_categories_table

Fichero con la migración (database/migrations/2025_03_28_200000_create_categories_table.php):

<?php
 
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
 
return new class extends Migration
{
    /**
     * Run the migrations.
     */
    public function up(): void
    {
        Schema::create('categories', function (Blueprint $table) {
            $table->id();
            $table->string('name')->unique();
            $table->string('color')->nullable();
            $table->timestamps();
        });
    }
 
    /**
     * Reverse the migrations.
     */
    public function down(): void
    {
        Schema::dropIfExists('categories');
    }
}

Modelo para las categorías (app/Models/Category.php):

<?php
 
namespace App\Models;
 
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
 
class Category extends Model
{
    use HasFactory;
 
    protected $fillable = ['name', 'color'];
 
    public function meals()
    {
        return $this->hasMany(Meal::class);
    }
 
    public function ingredients()
    {
        return $this->hasMany(Ingredient::class);
    }
}

Controlador

php artisan make:controller CategoryController -m Category
proyectos/registro_comidas.1743341871.txt.gz · Última modificación: por tempwin