Asignación masiva
Comprar curso

90. Asignación masiva

En este capítulo, exploraremos el uso del método create en PHP para guardar nuevos modelos en la base de datos de forma segura. Aprenderemos cómo protegernos contra vulnerabilidades de asignación masiva al especificar qué atributos del modelo pueden ser asignados en masa. Estas técnicas nos permitirán gestionar la creación y actualización de registros de manera segura y eficiente utilizando Eloquent en PHP.


1 comentarios

Inicia sesión para comentar

Comentarios:

  • Victor Arana Flores

    Victor Arana Flores hace 1 año

    Para crear un nuevo modelo en PHP y utilizar el método create para guardarlo, necesitarás definir las propiedades fillable o guarded en tu clase de modelo. Estas propiedades son importantes ya que protegen contra vulnerabilidades de asignación masiva.

    Una vulnerabilidad de asignación masiva ocurre cuando un campo inesperado de una solicitud HTTP modifica una columna en la base de datos de manera no deseada. Para evitar esto, debes definir qué atributos del modelo pueden ser asignados en masa. En nuestro ejemplo, permitiremos que el atributo name de nuestro modelo Flight sea asignable en masa.

    Aquí tienes un ejemplo de cómo definir las propiedades fillable en tu modelo Flight:

    <?php
    
    namespace App\Models;
    
    use Illuminate\Database\Eloquent\Model;
    
    class Flight extends Model
    {
        /**
         * The attributes that are mass assignable.
         *
         * @var array
         */
        protected $fillable = ['name'];
    }
    

    Una vez que hayas especificado qué atributos son asignables en masa, podrás utilizar el método create para insertar un nuevo registro en la base de datos y obtener la instancia del modelo recién creado:

    $flight = Flight::create(['name' => 'London to Paris']);
    

    Si ya tienes una instancia del modelo y deseas llenarla con una matriz de atributos, puedes utilizar el método fill:

    $flight->fill(['name' => 'Amsterdam to Frankfurt']);

    Estos métodos te permiten crear y actualizar registros de manera segura en tu base de datos utilizando Eloquent, evitando vulnerabilidades de asignación masiva.