ホームページ >PHPフレームワーク >Laravel >Laravelモデルクエリで不要なフィールドを除外する方法
Laravel は、強力かつ柔軟なデータベース操作機能を提供する非常に人気のある PHP Web 開発フレームワークです。 Laravel を使用してデータをクエリする場合、多くの場合、特定の指定されたフィールドをフィルターして返す必要がありますが、場合によっては、クエリ結果に表示されないように特定のフィールドを除外する必要があります。この記事では、Laravel モデルのクエリで不要なフィールドを除外する方法について説明します。
まず、Laravel が提供する select()
メソッドを使用して、クエリのフィールドを指定します。たとえば、次のようになります。
$users = User::select('name', 'email')->get();
これは、次の内容を含む ## を返します。各ユーザー #name フィールドと
email フィールドのコレクション。しかし、いくつかのフィールドを除外する必要がある場合はどうすればよいでしょうか?以下に 2 つの方法があります。
select() メソッドを使用して、返されるすべてのフィールドを指定し、## を使用します。 #excel ()
メソッドを使用して不要なフィールドを除外します。例: <pre class="brush:php;toolbar:false">$users = User::select('id', 'name', 'email', 'password')
->get()
->map(function ($user) {
return collect($user->toArray())
->except(['password'])
->all();
});</pre>
ここでは、最初に
メソッドを使用して、返されるすべてのフィールドを指定し、次に get()
メソッドを使用して実行します。クエリ。次に、map()
メソッドを使用してクエリ結果を処理し、各ユーザーの情報を連想配列に変換し、excel()
メソッドを使用してそのパスワード フィールドを除外します。 方法 2: 非表示フィールド
属性を使用して、出力する必要のないフィールドを非表示にする、より簡単な方法も提供しています。例: <pre class="brush:php;toolbar:false">class User extends Model
{
protected $hidden = ['password'];
}</pre>
この例では、ユーザーモデルの
属性を ['password']
に設定します。これにより、クエリを実行するときに、Laravel はパスワードフィールドを結果から自動的に除外します。 隠しフィールドを出力する必要がある場合は、
メソッドを使用して、モデルの $hidden
属性をオーバーライドできることに注意してください。問い合わせ中。例: <pre class="brush:php;toolbar:false">$user = User::find(1);
$user->makeVisible(['password']);</pre>
これにより、取得された
オブジェクトにパスワード フィールドが含まれます。 つまり、上記の 2 つの方法は、Laravel モデルのクエリで不要なフィールドを除外するのに役立ちます。使用する場合は、実際の状況に応じてどの方法を使用するかを選択できます。
以上がLaravelモデルクエリで不要なフィールドを除外する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。