Capire il "fillable" nella migrazione di Laravel [chiuso]

-1

L'uso dei modelli è uno dei fatti migliori in Laravel, ma quando si utilizza un modello, non è come il mio ambiente "nativo" (J2EE, i modelli dichiarano tutte le colonne della tabella DB), ha tre variabili e quale di esse è " riempibile". Quando si visualizzano le esercitazioni online, i compilabili contengono alcuni dati specifici come in una tabella:

Table : Users
Fields : Name, Email, Id, Password

Mettono protected $fillable = ['nom', 'email', 'password']; il che significa che ci siamo sbarazzati dell'ID .. Ma la parola fillable significa qualcosa che possiamo riempire ed è logico che l'ID sia auto-incrementato, ma diciamo che voglio eseguire qualche aggiornamento SOLO il campo del nome, restituirà un errore perché l'istruzione compilabile contiene 2 campi aggiuntivi? Come nella loro documentazione:

 You may also use the create method to save a new model in a single line. 
The inserted model instance will be returned to you from the method. 
However, before doing so, you will need to specify either a fillable or 
guarded attribute on the model, as all Eloquent models protect against 
mass-assignment.


  A mass-assignment vulnerability occurs when a user passes an unexpected
 HTTP parameter through a request, and that parameter changes a column in 
your database you did not expect. For example, a malicious user might send 
an is_admin parameter through an HTTP request, which is then mapped onto
 your model's create method, allowing the user to escalate themselves to an
 administrator.

Da cui riprendo: Se un singolo input viene inviato in una richiesta HTTP SENZA altri input (di massa), si fermerà? O che l'utente deve inserire ciascuno di essi in input per farli inserire? In tal caso cosa succede se un valore non è impostato (null)? Sarà considerato come non riempito?

    
posta Chaibi Alaa 23.10.2015 - 19:20
fonte

1 risposta

-1

Supponiamo di voler proteggere il campo ruolo dall'assegnazione di massa, quindi ci sono due modi per farlo nel modello Utente. Possiamo specificare una proprietà $guarded per specificare un elenco di campi che vogliamo escludere dall'assegnazione di massa, oppure possiamo specificare una proprietà $fillable per specificare un elenco di campi che vogliamo consentire per l'assegnazione di massa

    
risposta data 23.10.2015 - 23:18
fonte

Leggi altre domande sui tag