> PHP 프레임워크 > Laravel > Laravel 모델 쿼리에서 원치 않는 필드를 제외하는 방법

Laravel 모델 쿼리에서 원치 않는 필드를 제외하는 방법

PHPz
풀어 주다: 2023-04-23 09:44:15
원래의
1682명이 탐색했습니다.

Laravel은 강력하고 유연한 데이터베이스 운영 기능을 제공하는 매우 인기 있는 PHP 웹 개발 프레임워크입니다. Laravel을 사용하여 데이터를 쿼리할 때 지정된 특정 필드를 필터링하고 반환해야 하는 경우가 많지만, 어떤 경우에는 쿼리 결과에 표시되지 않도록 특정 필드를 제외해야 합니다. 이 문서에서는 Laravel 모델 쿼리에서 원하지 않는 필드를 제외하는 방법을 설명합니다.

먼저, Laravel에서 제공하는 select() 메소드를 사용하여 쿼리 필드를 지정할 수 있습니다. 예를 들어: select() 方法来指定查询的字段,例如:

$users = User::select('name', 'email')->get();
로그인 후 복사

这样会返回一个包含每个用户的 nameemail 字段的集合。但是如果我们需要排除一些字段,该怎么做呢?下面是两种方式:

方法一:排除字段

我们可以使用 select() 方法来指定要返回的所有字段,然后使用 except() 方法来将不需要的字段排除掉。例如:

$users = User::select('id', 'name', 'email', 'password')
             ->get()
             ->map(function ($user) {
                 return collect($user->toArray())
                     ->except(['password'])
                     ->all();
             });
로그인 후 복사

这里我们首先使用 select() 方法指定要返回的所有字段,然后使用 get() 方法来执行查询。接着我们使用 map() 方法来对查询结果进行处理,将每个用户的信息转换为一个关联数组,并使用 except() 方法将其密码字段排除掉。

方法二:隐藏字段

Laravel 还提供了一个更为简单的方法,就是使用模型的 $hidden 属性来隐藏不需要输出的字段。例如:

class User extends Model
{
    protected $hidden = ['password'];
}
로그인 후 복사

在这个例子中,我们将用户模型的 $hidden 属性设置为 ['password'],这样在查询时,Laravel 将自动将密码字段排除在结果之外。

需要注意的是,如果我们需要输出某个被隐藏的字段,可以在查询时使用 makeVisible() 方法来覆盖模型的 $hidden 属性。例如:

$user = User::find(1);
$user->makeVisible(['password']);
로그인 후 복사

这将会使获取的 $userrrreee

이것은 name 및 A 컬렉션을 반환합니다. 이메일 필드. 하지만 일부 필드를 제외해야 하는 경우에는 어떻게 해야 할까요? 다음은 두 가지 방법입니다.

방법 1: 필드 제외

select() 메서드를 사용하여 반환할 모든 필드를 지정한 다음 Except를 사용할 수 있습니다. () 메소드를 사용하여 불필요한 필드를 제외합니다. 예: 🎜rrreee🎜여기에서는 먼저 select() 메서드를 사용하여 반환할 모든 필드를 지정한 다음 get() 메서드를 사용하여 쿼리를 실행합니다. . 그런 다음 map() 메서드를 사용하여 쿼리 결과를 처리하고, 각 사용자의 정보를 연관 배열로 변환하고, Except() 메서드를 사용하여 비밀번호 필드를 제외합니다. . 🎜

방법 2: 숨겨진 필드

🎜Laravel은 모델의 $hidden 속성을 ​​사용하여 출력할 필요가 없는 필드를 숨기는 더 간단한 방법도 제공합니다. 예: 🎜rrreee🎜이 예에서는 사용자 모델의 $hidden 속성을 ​​['password']로 설정하여 쿼리할 때 Laravel이 자동으로 Fields 결과에서 제외됩니다. 🎜🎜숨겨진 필드를 출력해야 하는 경우 makeVisible() 메서드를 사용하여 쿼리할 때 모델의 $hidden 속성을 ​​재정의할 수 있다는 점에 유의하세요. 예: 🎜rrreee🎜이렇게 하면 검색된 $user 개체에 비밀번호 필드가 포함됩니다. 🎜🎜간단히 말하면, 위의 두 가지 방법 모두 Laravel 모델 쿼리에서 원치 않는 필드를 제외하는 데 도움이 될 수 있습니다. 사용할 때 실제 상황에 따라 어떤 방법을 사용할지 선택할 수 있습니다. 🎜

위 내용은 Laravel 모델 쿼리에서 원치 않는 필드를 제외하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿