ホームページ >バックエンド開発 >PHPチュートリアル >Laravel のエレガントなアクセサーとモディファイアー

Laravel のエレガントなアクセサーとモディファイアー

WBOY
WBOYオリジナル
2023-08-29 22:53:101146ブラウズ

Laravel のエレガントなアクセサーとモディファイアー

この記事では、Laravel Web フレームワークの Eloquent ORM の修飾子とアクセサーを紹介します。導入後、いくつかの例を通してこれらの概念を理解します。

Laravel では、修飾子とアクセサーを使用して、データベースにデータを保存したり、データベースからデータを取得したりする前にデータを変更できます。具体的には、ミューテーターを使用すると、データベースに保存する前にデータを変更できます。一方、アクセサーを使用すると、データベースからデータを取得した後にデータを変更できます。

実際、Laravel モデルは、修飾子メソッドとアクセサー メソッドを作成できる中心的な場所です。もちろん、すべての変更をさまざまな場所に分散させるのではなく、1 か所にまとめておくのは便利です。

モデルクラスにアクセサーと修飾子を作成する

修飾子とアクセサーの基本的な概念は理解できたので、それを示す実践的な例の開発に進みます。

Laravel の Eloquent モデルを理解していることを前提としています。例の開始点として Post モデルを使用します。 Post モデルをまだ作成していない場合は、artisan コマンドを使用して作成しましょう。

リーリー

これにより、以下に示すように、app/Post.php にモデル ファイルが作成されます。

リーリー

このファイルの内容を次のように置き換えてみましょう。

リーリー

--migration オプションを使用したため、関連するデータベースの移行も作成されるはずです。わからない場合に備えて、次のコマンドを実行すると、実際にデータベースにテーブルが作成されます。

リーリー

この記事の例を実行するには、post テーブルに name 列を作成する必要があります。いずれにしても、移行の詳細については、この記事の範囲を超えるため説明しません。

ミューテーターメソッド

まず、ミューテーター メソッドを見てみましょう。

リーリー

前に説明したように、修飾子はデータベースに保存する前にデータを変更するために使用されます。ご覧のとおり、ミューテーター メソッドの構文は {属性名} です。もちろん、{attribute-name} をキャメルケースの実際の属性名に置き換える必要があります。すべてのアクセサー メソッドと修飾子メソッドは、属性にアクセスして変更する方法を定義する Attribute インスタンスを返すことに注意することが重要です。

プロパティでミューテーター メソッドを呼び出すときは、set パラメーターが使用されます。わかりやすくするために、データベースに保存する前に投稿タイトルを小文字に変換する strto lower 関数を使用しました。

この方法で、テーブルのすべての列に突然変異メソッドを作成できます。次に、アクセサー メソッドを見てみましょう。

アクセサーメソッド

データベースに保存する前に変数を使用してデータを変更する場合、データベースからデータを取得した後にアクセサー メソッドを使用してデータを変更します。アクセサー メソッドを定義するには、プロパティの定義時に get パラメーターを指定する必要があります。

アクセサー メソッドを見てみましょう。

リーリー

データベースから name 属性の値を取得した後、get パラメーターが呼び出されます。この例では、ucfirst メソッドを使用して投稿タイトルを変更しました。

ここまではアサイナー メソッドとアクセサー メソッドを作成しただけですが、次のセクションでそれらをテストします。

ミューテーターの役割

前のセクションで作成したミューテーター メソッドをテストできるように、app/Http/Controllers/MutatorController.php にコントローラーを作成しましょう。

リーリー

さらに、ミューテーター コントローラーにアクセスするには、routes/web.php ファイルに関連するルートを作成する必要があります。

リーリー

index メソッドでは、Post モデルを使用して新しい投稿を作成します。対応するミューテーター メソッドで strto lower 関数を使用したため、name 列の値を post title 値に設定する必要があります。

アクセサ稼働中

アクセサーの動作を確認するには、次の内容を含むコントローラー ファイルを作成しましょう。 app/Http/Controllers/AccessorController.php:

リーリー

同様に、アクセサー コントローラーにアクセスするには、routes/web.php ファイル内の関連付けられたルートを使用する必要があります。

リーリー

index メソッドでは、まず Post モデルを使用してサンプル投稿を読み込みます。

次に、name 列の値を確認します。この列にはアクセサー メソッドを定義しているため、この列は大文字で始まる必要があります。

これが、Eloquent ミューテーターとアクセサーの仕組みです。

###結論は###

今日は、Laravel の Eloquent ORM の修飾子とアクセサーの概念を検討しました。これは、データをデータベースに保存したりデータベースから抽出したりする前に、データを変更するための優れた方法を提供します。

Laravel を始めたばかりの方、または拡張機能を使用して知識、Web サイト、またはアプリケーションを拡張したいと考えている方のために、Envato マーケットで学習できるさまざまなコンテンツをご用意しています。

以上がLaravel のエレガントなアクセサーとモディファイアーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。