informatica:programacion:php:frameworks:laravel:convenciones
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Próxima revisión | Revisión previa | ||
| informatica:programacion:php:frameworks:laravel:convenciones [2025/03/09 10:28] – creado tempwin | informatica:programacion:php:frameworks:laravel:convenciones [2025/03/09 10:50] (actual) – [Columnas en Snake Case] tempwin | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| ====== Convenciones utilizadas en Laravel ====== | ====== Convenciones utilizadas en Laravel ====== | ||
| - | Laravel prioriza " | + | [[informatica: |
| + | ===== Estructura de directorios ===== | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | ===== Nombrado de ficheros ===== | ||
| + | |||
| + | * **Modelos**: | ||
| + | * ** Controladores**: | ||
| + | * **Migraciones**: | ||
| + | |||
| + | ===== 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 // | ||
| + | |||
| + | Ejemplos: | ||
| + | |||
| + | ^ Modelo | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | |||
| + | 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 = ' | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ==== Tablas Pivote ==== | ||
| + | |||
| + | Para relaciones muchos a muchos (// | ||
| + | |||
| + | Por ejemplo: | ||
| + | |||
| + | ^ Modelos | ||
| + | | '' | ||
| + | | '' | ||
| + | |||
| + | ==== Claves primarias ==== | ||
| + | |||
| + | Por defecto, Laravel espera una columna llamada '' | ||
| + | |||
| + | Si nuestra tabla usa otro nombre como clave primaria, hay que definir una propiedad // | ||
| + | |||
| + | <code php> | ||
| + | class User extends Model { | ||
| + | protected $primaryKey = ' | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ==== Claves foráneas ==== | ||
| + | |||
| + | Laravel asume que la clave foránea se llama '' | ||
| + | |||
| + | Por ejemplo, si un '' | ||
| + | |||
| + | Si queremos personalizarlo, | ||
| + | |||
| + | <code php> | ||
| + | class Comment extends Model { | ||
| + | public function post() { | ||
| + | return $this-> | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ==== Timestamps automáticos ==== | ||
| + | |||
| + | Laravel espera columnas '' | ||
| + | |||
| + | Si no las usas, podemos indicarlo en el modelo: | ||
| + | |||
| + | |||
| + | <code php> | ||
| + | class User extends Model { | ||
| + | public $timestamps = false; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ==== Columnas en Snake Case ==== | ||
| + | |||
| + | Todas las columnas de la base de datos deben definirse en // | ||
| + | |||
| + | Por ejemplo, la columna '' | ||
| + | |||
| + | ===== ¿Qué pasa si no sigo las convenciones? | ||
| + | |||
| + | Puedes personalizar todo, pero tendrás que escribir más código (ej: definir manualmente claves foráneas, nombres de tablas, etc.). Seguir las convenciones ahorra tiempo y evita errores. | ||
informatica/programacion/php/frameworks/laravel/convenciones.1741512500.txt.gz · Última modificación: por tempwin
