eloque: generar clases de modelo es un proceso de creación de clases de modelos con la tabla de base de datos en Laravel. Uso de ELOQUENT ORM (mapeador-relacional de objetos) puede leer, crear, actualizar y eliminar datos fácilmente fácilmente de la tabla de la base de datos.
Modelo de clase Método
1. Crear modelo usando el comando artesano
Las clases de modelos se crean utilizando la CLI artesanal de Laravel. Ejecute el comando a continuación:
Php Artisan Make: Model ModelName
php artisan make:model ModelName
Por ejemplo, para crear una publicación llamada Post:
Php Artisan Make: Model Post
php artisan make:model ModelName
creará un archivo Post.php en el directorio APP/Models.
estructura básica del modelo
El modelo generalmente se verá así:
Namespace App \ Models;
Use Illuminate \ Database \ Eloquent \ Factories \ HasFactory;
Use Illuminate \ Database \ ELOQUENT \ Model;
La publicación de clase extiende el modelo
{
Uso Hasfactory;
}
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
use HasFactory;
}
2. Model con archivos de migración
Use el comando a continuación para crear el modelo y la migración de la base de datos juntas:
Php Artisan Make: Model Post -M
php artisan make:model ModelName
creará dos cosas:
Modelo de publicación. -
Base de datos/migraciones/2025_01_05_000000_create_posts_table.php Un archivo de migración llamado -
1. Creado Factory and Seeder con modelos
para crear modelos con archivos de Factory y Seeder:
Php Artisan Make: Model Post -MFSC
php artisan make:model ModelName
- m : creará migración.
- f : creará fábrica.
- s : Cedar creará.
- c : creará el controlador.
Relaciones con la tabla de base de datos en el modelo
1. Nombre de tabla predeterminado
Laravel Model captura el nombre de la tabla de la base de datos con el nombre de la clase.
P.ej:
Las publicaciones del modelo de publicación serán publicaciones. -
La tabla predeterminada del modelo de usuario será usuarios. -
Si desea usar una tabla personalizada, establezca las propiedades de la tabla $ en el modelo:
La publicación de clase extiende el modelo
{
Protegido $ table = 'Blog_posts';
}
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
use HasFactory;
}
Las propiedades y método importantes del modelo
1. $ Fillable y $ Guarded
$ Fillable o $ Guarded se usa para determinar qué campo se puede insertar en la base de datos.
- $ Fillable : los datos se pueden insertar en los campos prescritos.
La publicación de clase extiende el modelo
{
Protegido $ Fillable = ['Title', 'Content'];
}
php artisan make:model ModelName
- $ Guarded : los datos no se pueden insertar en los campos prescritos.
La publicación de clase extiende el modelo
{
Protegido $ Guarded = ['id'];
}
php artisan make:model ModelName
2. $ Primario
si algo más que la ID de clave principal en su tabla es:
La publicación de clase extiende el modelo
{
Protegido $ primario = 'post_id';
}
php artisan make:model ModelName
1. $ Timestamps
Laravel usa la tabla para crear_at y actualizado_at columna como predeterminado. Si no quiere usarlos:
La publicación de clase extiende el modelo
{
Public $ timestamps = false;
}
php artisan make:model ModelName
1. Relaciones
Los modelos se pueden vincular entre sí al usar relaciones elocuentes.
- uno a una relación (uno a uno) :
Función pública user ()
{
Devolver $ this-> Hasone (usuario :: class);
}
php artisan make:model ModelName
- a muchas relaciones (One-Many) :
Public Función Comentarios ()
{
Devolver $ this-> hasmany (comentario :: class);
}
php artisan make:model ModelName
- muchas a muchas relaciones (muchos a grany) :
Función pública Tags ()
{
Devolver $ this-> pertenecerstomany (etiqueta :: class);
}
public function tags()
{
return $this->belongsToMany(Tag::class);
}