Поля

Text

Основы

Содержит все Базовые методы.

Поле Text - это базовое текстовое поле ввода в MoonShine. Это поле эквивалент <input type="text">.

 namespaces
use MoonShine\UI\Fields\Text;
 
Text::make('Title')
 namespaces
use MoonShine\UI\Fields\Text;
 
Text::make('Title')
<x-moonshine::field-container label="Title">
<x-moonshine::form.input
type="text"
name="title"
/>
</x-moonshine::field-container>
<x-moonshine::field-container label="Title">
<x-moonshine::form.input
type="text"
name="title"
/>
</x-moonshine::field-container>

Основные методы

Подсказка

Метод placeholder() позволяет задать текст-подсказку для поля.

placeholder(string $value)
placeholder(string $value)
Text::make('Username', 'username')
->placeholder('Enter username')
Text::make('Username', 'username')
->placeholder('Enter username')

Маска

Метод mask() позволяет применить маску к вводимому тексту.

mask(string $mask)
mask(string $mask)

Пример использования:

Text::make('Phone', 'phone')
->mask('+7 (999) 999-99-99')
Text::make('Phone', 'phone')
->mask('+7 (999) 999-99-99')

mask mask_dark

Теги

Метод tags() преобразует текстовое поле в поле для ввода тегов.

tags(?int $limit = null)
tags(?int $limit = null)
Text::make('Tags', 'tags')
->tags(5)
Text::make('Tags', 'tags')
->tags(5)

Отключение экранирования

Метод unescape() отключает экранирование HTML-тегов в значении поля.

Text::make('HTML Content', 'content')
->unescape()
Text::make('HTML Content', 'content')
->unescape()

Расширения

Поле поддерживает различные расширения для помощи и контроля ввода

expansion expansion_dark

Копирование

Метод copy() добавляет кнопку для копирования значения поля.

copy(string $value = '{{value}}')
copy(string $value = '{{value}}')
Text::make('Токен', 'token')
->copy()
Text::make('Токен', 'token')
->copy()

Скрытие значения

Метод eye() добавляет кнопку для показа/скрытия значения поля (например, для пароля).

Text::make('Password', 'password')
->eye()
Text::make('Password', 'password')
->eye()

Замок

Метод locked() добавляет иконку замка к полю.

Text::make('Protected field', 'protected_field')
->locked()
Text::make('Protected field', 'protected_field')
->locked()

Префикс

Метод prefix() добавляет префикс к полю ввода.

prefix(string $ext)
prefix(string $ext)
Text::make('Domain', 'domain')
->prefix('https://')
Text::make('Domain', 'domain')
->prefix('https://')

Суффикс

Метод suffix() добавляет суффикс к полю ввода.

suffix(string $ext)
suffix(string $ext)
Text::make('Domain', 'domain')
->suffix('.com')
Text::make('Domain', 'domain')
->suffix('.com')

PrettyLimit

Метод prettyLimit() позволяет отображать значение поля в режиме preview с ограниченной шириной. Полный текст показывается при наведении курсора.

prettyLimit(
null|Color|string|Closure $color = null,
null|string|Closure $label = null,
null|int|Closure $limit = null
)
prettyLimit(
null|Color|string|Closure $color = null,
null|string|Closure $label = null,
null|int|Closure $limit = null
)
 namespaces
use MoonShine\Support\Enums\Color;
use MoonShine\UI\Fields\Text;
 
Text::make('Название', 'title')
->prettyLimit(Color::PRIMARY);
 
// с динамическими значениями
Text::make('Статус', 'status')
->prettyLimit(
color: fn($value, $field) => $value === 'active' ? Color::SUCCESS : Color::ERROR,
label: fn($value, $field) => $value === 'active' ? 'Активен' : 'Неактивен',
limit: 200
);
 namespaces
use MoonShine\Support\Enums\Color;
use MoonShine\UI\Fields\Text;
 
Text::make('Название', 'title')
->prettyLimit(Color::PRIMARY);
 
// с динамическими значениями
Text::make('Статус', 'status')
->prettyLimit(
color: fn($value, $field) => $value === 'active' ? Color::SUCCESS : Color::ERROR,
label: fn($value, $field) => $value === 'active' ? 'Активен' : 'Неактивен',
limit: 200
);

Подробнее о компоненте можно узнать в разделе PrettyLimit.

Редактирование в режиме preview

Данному полю доступно редактирование в режиме preview.

Если вы хотите избежать ошибок ввода, можете использовать расширение Замок.

Text::make('Name')
->updateOnPreview()
->locked()
Text::make('Name')
->updateOnPreview()
->locked()