Tôi vừa phát hiện ra SensioLabsInsight và tìm thấy rất interesting tips về cách viết mã tốt. Nó sẽ là tuyệt vời nếu có một số lời giải thích về lý do tại sao (hoặc tại sao không) một cái gì đó nên được sử dụng - ngay cả đối với những thứ cơ bản như exit
và die
. Nó sẽ giúp tôi giải thích mọi thứ với những người tôi làm việc cùng.Làm thế nào để tạo ra một phản ứng bị cấm trong Symfony2?
Vì vậy, câu hỏi của tôi là đặc biệt cho AccessDeniedHttpException - nó nói: ứng dụng
Symfony không nên ném AccessDeniedHttpException
Vậy làm thế nào để tôi trở lại 403 Forbidden từ bộ điều khiển ứng dụng hoặc EventListener?
Phương pháp hay nhất là gì?
Thành thật mà nói, tôi nghĩ nó sẽ là
throw new AccessDeniedHttpException()
Kể từ khi cho 404 bạn có
throw $this->createNotFoundException()
Nhưng có vẻ như tôi đã sai. (?)
Vâng, trong trường hợp của tôi không trả lại 403, nhưng chuyển hướng đến trang đăng nhập. Nhưng vì tôi đang xây dựng API, tôi cần 403. Tôi đã kiểm tra hành vi nói bây giờ: 'Mã trạng thái phản hồi hiện tại là 200, nhưng 403 được mong đợi.' –
OK, bạn có thể trả lại phản hồi theo cách thủ công như sau: // Trả lại phản hồi HTTP '403 Bị cấm' $ response = new Response(); $ response-> setStatusCode (403); $ event-> setResponse ($ response); Nhưng tôi không biết liệu điều đó có thể áp dụng trong trường hợp cụ thể của bạn hay không. – Tocacar