Laravel11の公式パッケージ Prompts の使い方の記録と解説の第5回です。

Prompts - Laravel 11.x - The PHP Framework For Web Artisans
Laravel is a PHP web application framework with expressive, elegant syntax. We???ve already laid the foundation ??? free...
前回はピュアPHPでsearch、multisearchを実装しました。
今回はピュアPHPでtextareaを実装していきます。
textareaは2024/04/09にリリースされたPrompts (v0.1.18) で追加された機能です。
Just a moment...
textareaの使い方
▼基本的な使い方(src/textarea.php)
<?php
require_once __DIR__ . '/../vendor/autoload.php';
use function Laravel\Prompts\textarea;
$story = textarea('話を聞かせてください。');
echo $story . PHP_EOL;
▼実行結果
テキストエリアが表示されました。

HTMLのテキストエリアと同様に複数行入力できます。
[Back space]、[Delete]、[Home]、[End]、矢印キー等も有効です。

[Ctrl] + [D] で内容確定します。

入力した内容が改行コード付きで返されました。
▼プレイスホルダー、補足説明、必須設定、表示行数
$story = textarea(
label: '話を聞かせてください。',
placeholder: "吾輩はAIである。\n名前はまだない。\nどこで生まれたかとんと見当がつかぬ。",
hint: 'これはあなたのプロフィールで表示されます。',
required: '何か話してくれなきゃ(´・д・`)ヤダ!',
rows: 3,
);
▼実行結果
プレイスホルダーが改行されて表示されています。
補足説明も表示されています。表示行数が3行になっています。

未記入で[Ctrl]+[D]で確定すると叱られます。

▼バリデーション
$story = textarea(
label: '話を聞かせてください。',
placeholder: "吾輩はAIである。\n名前はまだない。\nどこで生まれたかとんと見当がつかぬ。",
hint: 'これはあなたのプロフィールで表示されます。',
required: '何か話してくれなきゃ(´・д・`)ヤダ!',
rows: 5,
validate: fn (string $value) => match (true) {
mb_strlen($value) < 50 => 'お話は50字以上でなければなりません。',
mb_strlen($value) > 100 => 'お話は100字以内でなければなりません。',
default => null,
}
);
▼実行結果
50文字未満で[Ctrl]+[D]を押すと叱られます。

100文字以上で[Ctrl]+[D]を押すと叱られます。
この場合、改行コードも文字数に含まれます。

今回は以上です。
次回はsuggestをピュアPHPで実装していきます。
コメント