Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

270
Views
El relleno de Laravel no establece la propiedad del componente

Me encontré con un problema con Laravel que espero que alguien pueda ayudar a explicar. El comando de relleno no establece las propiedades del modelo y, en su lugar, solo se puede usar para guardarlas en la base de datos con la función ->save() . ¿Hay alguna manera de fill donde realmente establece las propiedades del modelo a partir de una matriz?

Ejemplo de problema a continuación.

 $comment = new comment(); $comment->fill(['name' => 'Bob']); echo($comment->name); // Gives null/error.
 $comment = new comment(); $comment->name = 'Bob'; echo($comment->name); // Gives Bob.
over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

El motivo es que el nombre archivado no se puede completar en el modelo de comentarios. Para resolver este problema, debe agregar un campo que se pueda completar para ese campo en el modelo de comentarios.

 protected $fillable = [ 'name', ];

Si intenta acceder a un campo no rellenable, devolverá un valor nulo.

Si no desea agregarlo como rellenable, puede usar forceFill .

forceFill : Rellene el modelo con una matriz de atributos con asignación de masa de fuerza.

 $comment = new comment(); $comment->forceFill(['name' => 'Bob']); echo($comment->name);
over 4 years ago · Santiago Trujillo Report

0

Sí, debe usar la propiedad fillable del modelo y debe agregar un name dentro de la matriz fillable . Esa es la forma recomendada de hacerlo.

Como sugiere la respuesta de John Lobo , puede anular ese mecanismo a la fuerza usando forceFill o forceCreate . Ambos ignoran la propiedad rellenable en el modelo. Es posible que tenga una columna como is_admin y no desee actualizarla, pero la fuerza lo hará.

Notas :

  1. El principal problema con forceCreate o forceFill , es que tenemos que gestionar la asignación de claves foráneas manualmente.

  2. forceFill solo llenará (propiedades). Necesita guardar la llamada al método para guardar el registro real, mientras que forceCreate llenará (propiedades) y guardará ambos juntos.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!