laravel5.7 Eloquentの$fillableとは

Modelの中で記載する$fillableとは?

class Account extends Model
{
    //
    protected $table = 'account';
    protected $fillable = [
    	'login',
    	'foo',
    	'hoge',
    ];
}

公式Eloquentのページを見てみます。
https://readouble.com/laravel/5.7/ja/eloquent.html

以下の記載があります。
—-
一行だけで新しいモデルを保存するには、createメソッドが利用できます。挿入されたモデルインスタンスが、メソッドから返されます。しかし、これを利用する前に、Eloquentモデルはデフォルトで複数代入から保護されているため、モデルへfillableかguarded属性のどちらかを設定する必要があります。

複数代入の脆弱性はリクエストを通じて予期しないHTTPパラメーターが送られた時に起き、そのパラメーターはデータベースのカラムを予期しないように変更してしまうでしょう。たとえば悪意のあるユーザーがHTTPパラメーターでis_adminパラメーターを送り、それがモデルのcreateメソッドに対して渡されると、そのユーザーは自分自身を管理者(administrator)に昇格できるのです。

ですから最初に複数代入したいモデルの属性を指定してください。モデルの$fillableプロパティで指定できます。たとえば、Flightモデルの複数代入でname属性のみ使いたい場合です。
—-
う~ 日本語がなんか滅茶苦茶だ。すっと頭に入ってこないぞ、と思ったが、よく読むと、HTTPリクエストのパラメーターがカラムを変更してしまうから、予めモデルの属性をfillableかguardedで設定すると書いてある。

なるほど、納得!!!