Laravel에서 saveQuietly()는 생성, 생성, 업데이트, 업데이트 및 기타 Eloquent와 같은 이벤트를 실행하지 않고 모델을 저장할 수 있는 Eloquent 모델에서 사용할 수 있는 메소드입니다. 모델 이벤트. 이는 로깅, 알림, 데이터 검증 등 해당 이벤트와 관련된 추가 작업을 트리거하지 않고 데이터를 업데이트하거나 저장하려는 상황에서 유용할 수 있습니다.
다음은 Laravel의 saveQuietly() 실습 예제와 각 부분에 대한 자세한 설명을 포함한 단계별 가이드입니다.
사용자 모델이 있고 사용자가 업데이트될 때마다 사용자에게 알림을 보내는 이벤트가 트리거된다고 가정해 보세요. 그러나 일부 특정 경우(예: 관리자 업데이트 또는 백그라운드 유지 관리 작업)에는 이 알림을 트리거하지 않고 자동으로 사용자 정보를 업데이트할 수 있습니다.
사용자 모델에는 사용자가 업데이트될 때 실행되는 업데이트 및 업데이트된 이벤트에 대한 이벤트 리스너가 있을 수 있습니다.
이벤트가 있는 사용자 모델의 예:
namespace App\Models; use Illuminate\Database\Eloquent\Model; class User extends Model { protected $fillable = ['name', 'email', 'status']; protected static function booted() { // Event listener for updating static::updating(function ($user) { // Log or handle the update event \Log::info("User is being updated: {$user->id}"); }); // Event listener for updated static::updated(function ($user) { // Example action, such as sending a notification $user->notify(new \App\Notifications\UserUpdatedNotification()); }); } }
여기서 사용자가 업데이트될 때마다:
save()를 사용하여 사용자를 업데이트하면 이러한 이벤트가 실행됩니다.
예:
$user = User::find(1); $user->status = 'active'; $user->save();
예상 결과: 업데이트 및 업데이트 이벤트가 발생하여 로그 항목이 생성되고 사용자에게 알림이 전달됩니다.
이러한 이벤트가 발생하지 않도록 하려면(예: 관리자가 대량 작업의 일부로 사용자 상태를 업데이트하는 경우) saveQuietly()를 사용할 수 있습니다.
예:
$user = User::find(1); $user->status = 'inactive'; $user->saveQuietly();
saveQuietly()를 사용하면 업데이트 이벤트나 업데이트 이벤트가 모두 실행되지 않습니다. 이는 다음을 의미합니다.
namespace App\Models; use Illuminate\Database\Eloquent\Model; class User extends Model { protected $fillable = ['name', 'email', 'status']; protected static function booted() { // Event listener for updating static::updating(function ($user) { // Log or handle the update event \Log::info("User is being updated: {$user->id}"); }); // Event listener for updated static::updated(function ($user) { // Example action, such as sending a notification $user->notify(new \App\Notifications\UserUpdatedNotification()); }); } }
$user = User::find(1); $user->status = 'active'; $user->save();
$user = User::find(1); $user->status = 'inactive'; $user->saveQuietly();
saveQuietly()는 다음과 같은 시나리오에서 유용합니다.
관리자 업데이트를 처리하기 위해 이를 Laravel 컨트롤러에 넣는 방법은 다음과 같습니다.
$user = User::find(1);
saveQuietly()를 사용하면 이벤트 처리가 불필요한 작업을 크게 간소화할 수 있어 Laravel에서 Eloquent 모델 동작을 더 효과적으로 제어할 수 있습니다.
위 내용은 Laravel에서 자동 업데이트를 위해 saveQuietly()를 사용하는 방법과 시기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!