РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
164 of 1392 menu

Атрибут fillable

Атрибут fillable в моделях Laravel определяет список полей, которые могут быть заполнены через методы массового присвоения, такие как create или update, а также через передачу массива в конструктор модели. Это защита от массовой уязвимости, когда злоумышленник может передать неожиданные поля в запросе. Если поле не указано в fillable, то оно будет проигнорировано при массовом присвоении.

Синтаксис

<?php namespace AppModels; use IlluminateDatabaseEloquentModel; class Article extends Model { protected $fillable = [ 'title', 'content', 'status', ]; } ?>

Пример

Давайте создадим модель Article с разрешёнными полями для массового присвоения:

<?php namespace AppModels; use IlluminateDatabaseEloquentModel; class Article extends Model { protected $fillable = [ 'title', 'content', 'status', ]; } ?>

Теперь попробуем создать запись через метод create, передав массив данных:

<?php use AppModelsArticle; $article = Article::create([ 'title' => 'article 1', 'content' => 'text 1', 'status' => 'published', 'views' => 100, ]); echo $article->title; ?>

Результат выполнения кода:

"article 1"

Поле 'views' было проигнорировано, так как его нет в fillable.

Пример

Обновление записи через метод update с использованием массового присвоения:

<?php use AppModelsArticle; $article = Article::find(1); $article->update([ 'title' => 'updated article', 'content' => 'new text', ]); echo $article->title; ?>

Результат выполнения кода:

"updated article"

Пример

Использование массового присвоения через конструктор модели:

<?php use AppModelsArticle; $article = new Article([ 'title' => 'article 2', 'content' => 'text 2', 'status' => 'draft', ]); $article->save(); echo $article->title; ?>

Результат выполнения кода:

"article 2"

Смотрите также

  • атрибут guarded,
    который определяет поля, запрещённые для массового присвоения
  • метод fill,
    который заполняет модель массивом данных
  • метод forceFill,
    который заполняет модель даже с защищёнными полями
  • метод create,
    который создаёт и сохраняет модель с массовым присвоением
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить