bucket-sort logo bucket-sort

プログラミングとインフラエンジニアリングの覚え書き

  • Posts
  • About
  • Contact
  1. Home
  2. All Posts
  3. Filament の dehydrated メソッドとは何か

Filament の dehydrated メソッドとは何か

Mar 29, 2026 Laravel , Filament bucket-sort

Filament でフォームを実装していると、dehydrated() というメソッドを見かけることがあります。名前から何となく「データを取り出す系」の処理だとは感じますが、具体的にどういう意味を持つのかは少し分かりにくいです。この記事では、dehydrate という概念から整理してみます。

dehydrate とはどういう意味か

Filament における「dehydrate(脱水)」は、フォームの内部状態を保存用のデータ配列に変換する処理のことです。

[ フォーム UI の状態(Livewire の state)]
        ↓(dehydrate)
[ モデルに保存するためのデータ配列 ]
        ↓
[ DB 保存 ]

「脱水」という言葉が示す通り、UI上の余分な情報を取り除いて純粋なデータだけにするイメージです。逆向きの処理、つまり DB から値を読み込んでフォームに流し込む方向は「hydrate(水分補給)」と呼ばれています。

方向 処理名 概要
DB → フォーム hydrate 保存値をフォームに読み込む
フォーム → DB dehydrate フォームの状態を保存用に変換する

dehydrated() メソッドの役割

dehydrated() は、フィールドごとに「この値を保存対象に含めるかどうか」を制御するメソッドです。

TextInput::make('name')
    ->dehydrated(true)

true(デフォルト)を渡すとそのフィールドは保存対象になります。逆に false を渡すと、フォームの UI には表示されていてもデータ配列には含まれなくなります。

TextInput::make('password_confirmation')
    ->dehydrated(false)

この指定だけで、確認用パスワード入力欄の値が DB に保存されなくなります。

よくある活用パターン

確認用フィールドを保存しない

パスワード変更フォームでは「パスワード確認」欄を UI に置きますが、DB に保存するのは本体のパスワードだけです。dehydrated(false) を使うと余計なカラムを意識せずに済みます。

TextInput::make('password_confirmation')
    ->password()
    ->dehydrated(false)

入力があったときだけ保存する

クロージャーを使うと、条件付きで保存を制御できます。次の例はパスワードが入力されたときだけ更新し、未入力なら既存の値をそのまま維持したい場合の典型パターンです。

TextInput::make('password')
    ->password()
    ->dehydrated(fn ($state) => filled($state))

filled() は Laravel ヘルパーで、null や空文字列のときに false を返します。これにより、パスワード欄を空のまま保存しても既存パスワードが上書きされるのを防げます。

表示専用フィールドを保存しない

disabled() にしたフィールドは編集できませんが、Filament のデフォルト動作では保存対象から除外されます(内部的に dehydrated(false) と同じ扱い)。ただし明示的に書いておくと意図が分かりやすくなります。

TextInput::make('email')
    ->disabled()
    ->dehydrated(false)

まとめ

dehydrated() は一言で言えば「このフィールドを保存対象にするかどうか」を決めるメソッドです。

  • dehydrated(true) → 保存する(デフォルト)
  • dehydrated(false) → UI にはあるが DB には保存しない
  • クロージャーを渡すと条件付きで制御できる

フォームの都合で必要な入力欄と、実際に DB へ渡したいデータを分けて考えると、どこで dehydrated(false) を使うべきかが見えてきます。

Laravel PHP Filament
← [C#] Interlockedの使い方 PHP/Laravel で値の状態を判定するヘルパ関数まとめ →

Related Posts

  • Laravel の Event / Listener で Pub/Sub を実装する Apr 2, 2026
  • PHP/Laravel で値の状態を判定するヘルパ関数まとめ Mar 30, 2026
  • Laravelのレート制限(throttle:5,1)とは何か Mar 27, 2026
  • Livewireのファイルアップロード一時ファイルは誰が掃除しているのか Mar 14, 2026

Table of Contents

  • dehydrate とはどういう意味か
  • dehydrated() メソッドの役割
  • よくある活用パターン
    • 確認用フィールドを保存しない
    • 入力があったときだけ保存する
    • 表示専用フィールドを保存しない
  • まとめ

Recent Posts

  • Laravel の Event / Listener で Pub/Sub を実装する Apr 2, 2026
  • [C#] delegate と event の仕組みを整理する Apr 1, 2026
  • Pub/Sub パターンとは何か Mar 31, 2026
  • PHP/Laravel で値の状態を判定するヘルパ関数まとめ Mar 30, 2026
  • Filament の dehydrated メソッドとは何か Mar 29, 2026

Categories

  • AWS27
  • C#22
  • .NET20
  • Laravel16
  • Linux12
  • Apache8
  • MySQL8
  • PHP8
  • DynamoDB6
  • Nginx5
  • WordPress4
  • インフラ4
  • Hugo3
  • セキュリティ3
  • .NET Framework1
  • Aurora1
  • Filament1
  • Git1
  • SQS1

Tags

  • AWS
  • C#
  • .NET
  • Laravel
  • PHP
  • MySQL
  • セキュリティ
  • Linux
  • Apache
  • Code Snippet
  • DynamoDB
  • NoSQL
  • PHP-FPM
  • RDS
  • DoS
  • Nginx
  • Windows
  • WordPress
  • パフォーマンス
  • 監視
  • Amazon Linux 2023
  • CMS
  • Docker
  • Ipset
  • Iptables
  • OPCache
  • Webサーバー
  • 認可
  • Aurora
  • Blade
Powered by Hugo & Explore Theme.