【Laravel Prompts】使い方(textarea)

Laravel

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

Laravel - The PHP Framework For Web Artisans
Laravel is a PHP web application framework with expressive, elegant syntax. We’ve already laid the foundation — freeing ...

前回はピュアPHPでsearch、multisearchを実装しました。

今回はピュアPHPでtextareaを実装していきます。

textareaは2024/04/09にリリースされたPrompts (v0.1.18) で追加された機能です。

Laravel Prompts Adds a Multi-line Textarea Input, Laravel 11.3 Released - Laravel News
This week, the Laravel team released v11.3, which includes multi-line text in Laravel Prompts, a Session:hasAny() method...

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で実装していきます。

コメント

タイトルとURLをコピーしました