Laravel, fill e forceFill

Posted on: August 01, 2025 12:00 PM

Posted by: Renato

Categories: Laravel

Views: 159

Laravel, fill e forceFill

Em Laravel, fill e forceFill são métodos utilizados para atribuir valores a atributos de um modelo, mas com diferentes níveis de proteção contra atribuição em massa. O método fill respeita a propriedade $fillable do modelo, enquanto forceFill ignora essa proteção, permitindo que qualquer atributo seja definido, independentemente de estar ou não na lista $fillable

fill:

  • Proteção contra atribuição em massa: O método fill é projetado para proteger contra atribuições em massa, onde você tenta definir vários atributos de uma vez. Ele só permite que atributos definidos na propriedade $fillable do modelo sejam atualizados.
  • Uso: fill é usado para atualizar um modelo com base em um array de dados, garantindo que apenas os atributos permitidos sejam modificados.
  • Exemplo: 

Código

    $user = User::find(1);
    $user->fill([
        'name' => 'Novo Nome',
        'email' => '[email protected]',
        'password' => 'novaSenha', // Este atributo não será atualizado se não estiver em $fillable
    ]);
    $user->save();

Neste exemplo, se $fillable incluir apenas 'name' e 'email', apenas esses campos serão atualizados, ignorando o 'password'.

forceFill:

  • Ignora a proteção: forceFill ignora completamente a propriedade $fillable, permitindo que qualquer atributo seja atualizado, mesmo que não esteja definido como preenchível.
  • Uso: forceFill é útil quando você precisa definir atributos que não são normalmente permitidos ou quando está lidando com dados que não são seguros e você precisa garantir que eles sejam definidos.
  • Exemplo: 

Código

    $user = User::find(1);
    $user->forceFill([
        'name' => 'Novo Nome',
        'email' => '[email protected]',
        'password' => 'novaSenha', // Este atributo será atualizado, mesmo que não esteja em $fillable
    ]);
    $user->save();

Neste exemplo, todos os três campos serão atualizados, independentemente da configuração de $fillable.

Em resumo: fill é um método seguro para atualizar modelos, respeitando a propriedade $fillableforceFill é um método menos seguro que ignora essa proteção, permitindo que qualquer atributo seja definido. 

Observação: É crucial ter cuidado ao usar forceFill, pois ele pode expor seu aplicativo a vulnerabilidades de segurança se usado incorretamente. 

 

Mais informações:

The reason is name filed is not fillable in comment model .To Solve this issue you have to add fillable for that field in comment model

protected $fillable = [
        'name',

    ];

If you try to access non fillable field then it will return null.

If don't want to add it in fillable then you can use forceFill.

forceFill: Fill the model with an array of attributes with force mass assignment.

$comment = new comment();
$comment->forceFill(['name' => 'Bob']);
echo($comment->name);

 


1

Share

Donate to Site


About Author

Renato

Developer

Add a Comment

Blog Search


Categories

Laravel (227) PHP (151) linux (124) Variados (110) ubuntu (58) Dicas (58) developer (48) postgresql (45) database (44) sql (42) Docker (32) front-end (31) mysql (31) devops (26) webdev (24) programming (23) tecnologia (19) eloquent (19) aws (19) dba (18) OUTROS (17) backend (16) laravelphp (16) debian (12) dev (12) 100DaysOfCode (10) git (10) react (10) reactjs (10) inteligencia-artificial (9) PHP Swoole (9) node (9) javascript (9) nginx (9) Architecture (8) linux-tools (8) vue (7) github (7) ciencia (7) webservice (6) jwt (6) vim (6) windows (6) arquitetura (6) nodejs (6) api (6) vscode (6) reactnative (5) rest (5) DevSecOps (5) servers (5) apache (5) macox (5) s3 (5) authentication (5) ia (5) autenticacao (4) shell (4) mongodb (4) angular (4) artigo (4) wsl (4) Swoole (4) lets-encrypt (4) query (4) Raspberry (4) angularjs (4) inteligenciadedados (4) Padrao de design (4) google (4) npm (4) openai (4) jenkins (4) Kubernetes (4) gitlab (4) opensource (4) mariadb (4) containers (3) json (3) authorization (3) phpswoole (3) ddd (3) blade (3) terminal (3) log (3) mac (3) fedora (3) web (2) jobs (3) websocket (3) ssh (3) bash (3) hardware (3) tests (3) macos (3) db (3) politica (3) script (3) performance (3) js (3) mysqli (3) Black Hat (3) RabbitMQ (3) educacao (3) intel (3) CMS (2) sail (3) artificialintelligence (2) security (2) bancodedados (2) tailwind (2) homeOffice (2) html (2) openswoole (2) java (2) saude (1) seguranca (2) auth (2) cron (2) phpunit (2) kube (2) multiple_authen (2) policia (2) neovim (2) golang (2) noticias (2) livros (2) Transcribe (2) ElonMusk (2) redis (2) claude (2) ArchLinux (2) JQuery (2) phpfpm (2) autorizacao (2) monitoring (2) laptop (2) gnome (2) powerbi (2) telefonia (2) nvm (2) imagick (2) maps (2) colors (2) Passport (2) webhook (2) microservices (2) Curisidades (2) Solid (2) zsh (2) Go (2) BigLinux (2) POO (2) LazyVim (2) gource (2) Python (2) Oauth2 (2) android (2) unix (2) magento (2) iot (2) ffmpeg (2) combustivel (2) community (1) Samurai (1) payment (1) messaging (1) Jesus (1) flutter (1) Migration (1) workflow (1) cqrs (1) kitematic (1) geospacial (1) yeshua (1) data (1) sonarqube (1) Axios (1) pipelines (1) Mozilla (1) kvm (1) GitOps (1) sqlite (1) podcast (1) n8n (1) LaravelFilament (1) God (1) DesenvolvimentoProfissional (1) sw (1) bigtech (1) postgres (1) NoCookies (1) LeetCode (1) governancadedados (1) prf (1) nosql (1) Lideranca (1) Hackers (1) Bots (1) pytorch (1) nuxt (1) liquid (1) ec2 (1) transaction (1) c4 (1) rancher (1) algoritimo (1) Observability (1) Elasticsearch (1) translate (1) certbot (1) Oh My Zsh (1) ibm (1) escopos (1) usb (1) ckeditor (1) API_KEY_GOOGLE_MAPS (1) Manjaro (1) vicuna (1) coding (1) rust (1) markdown (1) JasperReports (1) Fibonacci (1) Filament (1) compactar (1) paypal (1) microg (1) forcas armadas (1) militar (1) fullsta (1) smartphones (1) automacao (1) Monitor (1) zend (1) spaceship (1) PKCE (1) l2tp (1) Glacier (1) laraveloctane (1) Deus (1) binaural (1) gpt (1) bolsonaro (1) privacidade (1) linkedin (1) documentation (1) brain (1) adb (1) nvidia (1) host (1) ecommerce (1) c4-models (1) altadisponibilidade (1) octane (1) lucena (1) http (1) TypeScript (1) chatgpt (1) idiomas (1) eventdrive (1) uuid (1) restfull (1) aplicativo (1) optimization (1) mapas (1) Fetch (1) collections (1) RustLang (1) matematica (1) MeioAmbiente (1) firefox (1) composer (1) scheduling (1) Asahi (1) pendrive (1) microservice (1) front (1) cor (1) auth (1) modelagemdedados (1) k8s (1) gasolina (1) wsl2 (1) csv (1) soap (1) piada (1) KubeCon (1) zorin-os (1) spring-boot (1) backup (1) playwright (1) Deepin (1) storage (1) benchmark (1) networking (1) Swoole (1) biologia (1) node-red (1) LETSENCRYPT (1) Grunt (1) Diagramas (1) boot (1) haru (1) dracula (1) TrabalhoEmEquipe (1) Brasil (1) queue (1) agi (1) llama (1) hotfix (1) economia (1) transcription (1) cache (1) Amazon (1) October (1) lumen (1) Hyperf (1) replication (1) faceapp (1) vala (1) cloudstack (1) rpi (1) apple (1) oracle (1) iode (1) ffaa (1) vpn (1) ArquiteturaDeSoftware (1) Passwordless (1) memcached (1) flow (1) compression (1) athena (1) front (1) wine (1) covid19 (0) services (1) phpjasper (1) models (1) kali-linux (1) geojson (1) yarn (1) picpay (1) Monolith (1) banco (1) PNPM (1) Desenvolvedor (1) Structurizr (1) symfony (1) presenter (1) lider (1) guard (1) tensorflow (1) bootstrap (1) nuance (1) historia (1) dropbox (1) traefik (1) bug (1) akitando (1) llm (1) htm (1) transformers (1) cavalotroia (1) odd (1) m1 (1) Error (1) cinnamon (1) repmgr (1) federal (1) ruby (1) AppSec (1) orm (1) controllers (0) OOD (0)

New Articles



Get Latest Updates by Email