Laravel의 Eloquent ORM에서 $user->delete();를 사용하여 레코드를 삭제할 때 다음이 발생할 수 있습니다. $this->photo()->delete()와 같은 관련 행을 자동으로 삭제하려고 합니다. 이는 모델 클래스에서 삭제 이벤트를 활용하여 달성할 수 있습니다.
이벤트 핸들러를 설정하려면 다음 단계를 따르세요.
namespace App\Models; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { public function photos() { return $this->has_many('Photo'); } // this is a recommended way to declare event handlers protected static function booted() { static::deleting(function(User $user) { // before delete() method calls this $user->photos()->delete(); // perform additional cleanup if necessary }); } }
삭제 이벤트 핸들러를 정의하면 User 모델이 삭제될 때마다 관련 Photo 모델도 자동으로 삭제됩니다. 참조 무결성을 보장하려면 삭제 프로세스를 트랜잭션 내에서 래핑하는 것이 좋습니다.
위 내용은 Laravel Eloquent에서 모델을 삭제할 때 관련 행을 자동으로 삭제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!