まず、Laravel Adminでは、バリデーションルールを使用して必須フィールドを設定します。バリデーションルールは、フォームデータの検証を行うためのルールセットです。
以下に、必須フィールドを設定するためのシンプルな手順を示します。
-
モデルのルールを定義する: Laravelでは、各モデルに対してルールを定義することができます。必須フィールドを設定する場合は、該当するモデルのルールファイルを編集します。ルールファイルは通常、
app/Rules
ディレクトリに保存されます。例えば、
app/Rules/PostRules.php
という名前のルールファイルを作成します。以下は、その中身の一部です。<?php namespace App\Rules; use Illuminate\Contracts\Validation\Rule; class PostRules implements Rule { public function passes($attribute, $value) { // 必須フィールドのバリデーションルールを定義する return !empty($value); } public function message() { return '必須フィールドを入力してください。'; } }
-
フォームにルールを適用する: フォームにルールを適用するためには、フォームリクエストクラスを使用します。フォームリクエストクラスは、リクエストデータのバリデーションを行うためのクラスです。
例えば、
PostRequest
という名前のフォームリクエストクラスを作成します。以下は、その中身の一部です。<?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; use App\Rules\PostRules; class PostRequest extends FormRequest { public function rules() { return [ 'title' => ['required', new PostRules()], 'content' => ['required'], ]; } public function messages() { return [ 'title.required' => 'タイトルを入力してください。', 'content.required' => '内容を入力してください。', ]; } }
上記の例では、
title
とcontent
が必須フィールドであることを示しています。 -
Laravel Adminでフォームリクエストクラスを使用する: Laravel Adminでは、フォームのバリデーションにフォームリクエストクラスを使用することができます。Laravel Adminのコントローラで、フォームリクエストクラスをインポートし、
store
やupdate
メソッドで使用します。以下は、Laravel Adminのコントローラの例です。
<?php namespace App\Admin\Controllers; use App\Http\Controllers\Controller; use App\Http\Requests\PostRequest; use Encore\Admin\Controllers\HasResourceActions; use Encore\Admin\Layout\Content; use Encore\Admin\Widgets\Form; class PostController extends Controller { use HasResourceActions; public function create(Content $content) { return $content ->title('新規投稿') ->body($this->form()); } public function store(PostRequest) { // フォームリクエストクラスによるバリデーションが成功した場合の処理 } public function edit($id, Content $content) { return $content ->title('投稿編集') ->body($this->form()->edit($id)); } public function update(PostRequest $request, $id) { // フォームリクエストクラスによるバリデーションが成功した場合の処理 } protected function form() { $form = new Form(new Post()); $form->text('title', 'タイトル'); $form->textarea('content', '内容'); // 他のフォームフィールドを追加することもできます return $form; } }
上記の例では、
PostRequest
クラスを使用してフォームのバリデーションを行っています。store
メソッドとupdate
メソッドで、フォームリクエストクラスを引数として指定しています。
これで、Laravel Adminで必須フィールドを設定する方法が分かりました。必須フィールドを設定することで、ユーザーが重要な情報を入力することを確認できます。