Laravel은 강력하고 유연한 데이터베이스 운영 기능을 제공하는 매우 인기 있는 PHP 웹 개발 프레임워크입니다. Laravel을 사용하여 데이터를 쿼리할 때 지정된 특정 필드를 필터링하고 반환해야 하는 경우가 많지만, 어떤 경우에는 쿼리 결과에 표시되지 않도록 특정 필드를 제외해야 합니다. 이 문서에서는 Laravel 모델 쿼리에서 원하지 않는 필드를 제외하는 방법을 설명합니다.
먼저, Laravel에서 제공하는 select()
메소드를 사용하여 쿼리 필드를 지정할 수 있습니다. 예를 들어: select()
方法来指定查询的字段,例如:
$users = User::select('name', 'email')->get();
这样会返回一个包含每个用户的 name
和 email
字段的集合。但是如果我们需要排除一些字段,该怎么做呢?下面是两种方式:
我们可以使用 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']);
这将会使获取的 $user
rrreee
name
및 A 컬렉션을 반환합니다. 이메일
필드. 하지만 일부 필드를 제외해야 하는 경우에는 어떻게 해야 할까요? 다음은 두 가지 방법입니다.
select()
메서드를 사용하여 반환할 모든 필드를 지정한 다음 Except를 사용할 수 있습니다. ()
메소드를 사용하여 불필요한 필드를 제외합니다. 예: 🎜rrreee🎜여기에서는 먼저 select()
메서드를 사용하여 반환할 모든 필드를 지정한 다음 get()
메서드를 사용하여 쿼리를 실행합니다. . 그런 다음 map()
메서드를 사용하여 쿼리 결과를 처리하고, 각 사용자의 정보를 연관 배열로 변환하고, Except()
메서드를 사용하여 비밀번호 필드를 제외합니다. . 🎜$hidden
속성을 사용하여 출력할 필요가 없는 필드를 숨기는 더 간단한 방법도 제공합니다. 예: 🎜rrreee🎜이 예에서는 사용자 모델의 $hidden
속성을 ['password']
로 설정하여 쿼리할 때 Laravel이 자동으로 Fields 결과에서 제외됩니다. 🎜🎜숨겨진 필드를 출력해야 하는 경우 makeVisible()
메서드를 사용하여 쿼리할 때 모델의 $hidden
속성을 재정의할 수 있다는 점에 유의하세요. 예: 🎜rrreee🎜이렇게 하면 검색된 $user
개체에 비밀번호 필드가 포함됩니다. 🎜🎜간단히 말하면, 위의 두 가지 방법 모두 Laravel 모델 쿼리에서 원치 않는 필드를 제외하는 데 도움이 될 수 있습니다. 사용할 때 실제 상황에 따라 어떤 방법을 사용할지 선택할 수 있습니다. 🎜위 내용은 Laravel 모델 쿼리에서 원치 않는 필드를 제외하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!