Метод make
Метод make класса Attribute в Laravel служит для создания нового экземпляра атрибута модели. Этот метод часто используется в миграциях для определения типов полей, а также в фабриках моделей для генерации данных. Первым параметром принимается тип данных атрибута, вторым - его значение. Метод возвращает объект Attribute, который можно использовать для дальнейшей работы с атрибутами модели.
Синтаксис
<?php
Attribute::make($type, $value);
?>
Пример
Давайте создадим атрибут с типом 'string' и значением 'article':
<?php
use Illuminate\Database\Eloquent\Attribute;
$attr = Attribute::make('string', 'article');
echo $attr->get();
?>
Результат выполнения кода:
"article"
Пример
Давайте создадим атрибут с типом 'integer' и значением 42:
<?php
use Illuminate\Database\Eloquent\Attribute;
$attr = Attribute::make('integer', 42);
echo $attr->get();
?>
Результат выполнения кода:
"42"
Пример
Давайте создадим атрибут с типом 'boolean' и значением '1':
<?php
use Illuminate\Database\Eloquent\Attribute;
$attr = Attribute::make('boolean', '1');
echo $attr->get();
?>
Результат выполнения кода:
"1"
Пример
Давайте создадим атрибут с типом 'dateTime' и передадим текущую дату:
<?php
use Illuminate\Database\Eloquent\Attribute;
use Illuminate\Support\Carbon;
$date = Carbon::now();
$attr = Attribute::make('dateTime', $date);
echo $attr->get();
?>
Результат выполнения кода:
"2026-09-07 12:34:56"
Пример
Давайте создадим атрибут с типом 'json' и передадим массив данных:
<?php
use Illuminate\Database\Eloquent\Attribute;
$data = ['title' => 'article', 'views' => 100];
$attr = Attribute::make('json', $data);
echo $attr->get();
?>
Результат выполнения кода:
"{\"title\":\"article\",\"views\":100}"
Смотрите также
-
класс
Attribute,
класс для работы с атрибутами модели -
метод
setAttribute,
который устанавливает значение атрибута -
метод
getAttribute,
который получает значение атрибута -
метод
casts,
который определяет приведение типов атрибутов