informatica:programacion:php:frameworks:laravel:convenciones
¡Esta es una revisión vieja del documento!
Tabla de Contenidos
Convenciones utilizadas en Laravel
Laravel prioriza “convención sobre configuración”, así que seguir sus estándares te ahorrará tiempo.
Estructura de directorios
app/Models: modelosresources/views: vistas.app/Http/Controllers: controladores.database/migrations: migraciones.routes: definición de rutas.config: archivos de configuración.
Nombrado de ficheros
- Modelos: Singular y PascalCase (ej:
User,ProductCategory). - ** Controladores: Sufijo Controller (ej:
UserController). * *Migraciones*:create_users_table→ genera tablausers. ===== Bases de datos ===== ==== Nombres de tablas ==== Por defecto, Laravel asume que el nombre de la tabla corresponde al *plural en inglés* del modelo asociado, en snake_case (minúsculas y separado por guiones bajos) si tiene más de una palabra. Ejemplos: ^ Modelo ^ Tabla ^ |User|users| |PostComment|post_comments| |ProductCategory|product_categories| Si nuestras tablas no siguen esta regla, podemos definir el nombre manualmente en el modelo estableciendo una propiedad privada con el nombre de la tabla: <code php> class User extends Model { protected $table = 'mis_usuarios'; // Sobrescribe la convención } </code> ===== Tablas Pivote ===== Para relaciones muchos a muchos (Many-to-Many), Laravel espera una tabla intermedia (pivote) con los nombres de las dos tablas relacionadas *en orden alfabético*, en singular y unidos por un guion bajo. Por ejemplo: ^ Modelos ^ Tabla pivote ^ |UseryRole|role_user| |PostyTag|post_tag| ===== Claves primarias ===== Por defecto, Laravel espera una columna llamadaidcomo clave primaria. Si nuestra tabla usa otro nombre como clave primaria, hay que definir una propiedad protected$primaryKeyen el modelo correspondiente: <code php> class User extends Model { protected $primaryKey = 'user_id'; } </code> ===== Claves foráneas ===== Claves Foráneas (Foreign Keys) Nombre: Laravel asume que la clave foránea se llama {nombre_modelo_en_singular}_id en snake_case. Ejemplo: Si un Comment pertenece a un Post → clave foránea: post_id. Personalización: Puedes definirla manualmente en las relaciones: php Copy class Comment extends Model { public function post() { return $this→belongsTo(Post::class, 'mi_post_id'); // Clave foránea personalizada } }
informatica/programacion/php/frameworks/laravel/convenciones.1741513437.txt.gz · Última modificación: por tempwin
