ホームページ  >  記事  >  PHPフレームワーク  >  Laravelモデルクエリで不要なフィールドを除外する方法

Laravelモデルクエリで不要なフィールドを除外する方法

PHPz
PHPzオリジナル
2023-04-23 09:18:041591ブラウズ

Laravel は、強力かつ柔軟なデータベース操作機能を提供する非常に人気のある PHP Web 開発フレームワークです。 Laravel を使用してデータをクエリする場合、多くの場合、特定の指定されたフィールドをフィルターして返す必要がありますが、場合によっては、クエリ結果に表示されないように特定のフィールドを除外する必要があります。この記事では、Laravel モデルのクエリで不要なフィールドを除外する方法について説明します。

まず、Laravel が提供する select() メソッドを使用して、クエリのフィールドを指定します。たとえば、次のようになります。

$users = User::select('name', 'email')->get();

これは、次の内容を含む ## を返します。各ユーザー #name フィールドと email フィールドのコレクション。しかし、いくつかのフィールドを除外する必要がある場合はどうすればよいでしょうか?以下に 2 つの方法があります。

方法 1: フィールドを除外する

select() メソッドを使用して、返されるすべてのフィールドを指定し、## を使用します。 #excel () メソッドを使用して不要なフィールドを除外します。例: <pre class="brush:php;toolbar:false">$users = User::select('id', 'name', 'email', 'password')              -&gt;get()              -&gt;map(function ($user) {                  return collect($user-&gt;toArray())                      -&gt;except(['password'])                      -&gt;all();              });</pre>ここでは、最初に

select()

メソッドを使用して、返されるすべてのフィールドを指定し、次に get() メソッドを使用して実行します。クエリ。次に、map() メソッドを使用してクエリ結果を処理し、各ユーザーの情報を連想配列に変換し、excel() メソッドを使用してそのパスワード フィールドを除外します。 方法 2: 非表示フィールド

Laravel では、モデルの

$hidden

属性を使用して、出力する必要のないフィールドを非表示にする、より簡単な方法も提供しています。例: <pre class="brush:php;toolbar:false">class User extends Model {     protected $hidden = ['password']; }</pre> この例では、ユーザーモデルの

$hidden

属性を ['password'] に設定します。これにより、クエリを実行するときに、Laravel はパスワードフィールドを結果から自動的に除外します。 隠しフィールドを出力する必要がある場合は、

makeVisible()

メソッドを使用して、モデルの $hidden 属性をオーバーライドできることに注意してください。問い合わせ中。例: <pre class="brush:php;toolbar:false">$user = User::find(1); $user-&gt;makeVisible(['password']);</pre>これにより、取得された

$user

オブジェクトにパスワード フィールドが含まれます。 つまり、上記の 2 つの方法は、Laravel モデルのクエリで不要なフィールドを除外するのに役立ちます。使用する場合は、実際の状況に応じてどの方法を使用するかを選択できます。

以上がLaravelモデルクエリで不要なフィールドを除外する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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