# Xác thực dữ liệu (Symfony) > Constraints, custom validator, validation groups, xác thực Entity, xác thực DTO - 18 câu hỏi phỏng vấn - Junior - [Câu hỏi phỏng vấn: Symfony](https://sharpskill.dev/vi/technologies/symfony/cau-hoi-phong-van.md) ## 1. Vai trò chính của component Validator của Symfony là gì? **Câu trả lời** Component Validator của Symfony xác thực dữ liệu theo các quy tắc được định nghĩa gọi là constraints. Nó có thể xác thực các đối tượng, giá trị vô hướng và mảng, trả về danh sách violation nếu các quy tắc không được đáp ứng. Component này được tích hợp với form nhưng cũng có thể được sử dụng độc lập. ## 2. Nên dùng constraint nào để kiểm tra rằng một field không rỗng hoặc null? **Câu trả lời** Constraint NotBlank kiểm tra rằng một giá trị không rỗng (chuỗi rỗng, null hoặc mảng rỗng). Nó khác với NotNull vốn chấp nhận chuỗi rỗng. NotBlank được dùng phổ biến nhất cho các field bắt buộc của form vì nó cũng từ chối các chuỗi chỉ chứa khoảng trắng. ## 3. Làm thế nào để áp dụng một constraint validation lên một thuộc tính entity bằng attributes của PHP 8? **Câu trả lời** Từ PHP 8, các constraint validation được áp dụng thông qua attributes đặt ngay phía trên các thuộc tính. Cú pháp sử dụng tiền tố Assert với namespace Symfony\Component\Validator\Constraints. Cách tiếp cận này súc tích hơn so với chú thích DocBlock và tận dụng được hỗ trợ native của PHP. ## Còn 15 câu hỏi nữa - constraint nào xác thực rằng một chuỗi khớp với định dạng email hợp lệ? - Làm thế nào để xác thực độ dài của một chuỗi với giá trị tối thiểu và tối đa? Đăng ký miễn phí: https://sharpskill.dev/vi/login ## Các chủ đề phỏng vấn Symfony khác - [PHP Hiện Đại (8.1+)](https://sharpskill.dev/vi/technologies/symfony/cau-hoi-phong-van/php-modern-features.md): 20 câu hỏi, Junior - [Kiến thức cơ bản về Symfony](https://sharpskill.dev/vi/technologies/symfony/cau-hoi-phong-van/symfony-basics.md): 25 câu hỏi, Junior - [Routing & Controllers](https://sharpskill.dev/vi/technologies/symfony/cau-hoi-phong-van/routing-controllers.md): 20 câu hỏi, Junior - [Twig & Templates](https://sharpskill.dev/vi/technologies/symfony/cau-hoi-phong-van/twig-templates.md): 20 câu hỏi, Junior - [Kiến thức cơ bản về Doctrine ORM](https://sharpskill.dev/vi/technologies/symfony/cau-hoi-phong-van/doctrine-orm-basics.md): 25 câu hỏi, Junior - [Biểu mẫu Symfony](https://sharpskill.dev/vi/technologies/symfony/cau-hoi-phong-van/forms.md): 22 câu hỏi, Junior - [Dependency Injection & Services](https://sharpskill.dev/vi/technologies/symfony/cau-hoi-phong-van/dependency-injection.md): 24 câu hỏi, Mid-Level - [Security & Authentication](https://sharpskill.dev/vi/technologies/symfony/cau-hoi-phong-van/security-authentication.md): 26 câu hỏi, Mid-Level - [Doctrine Nâng cao](https://sharpskill.dev/vi/technologies/symfony/cau-hoi-phong-van/doctrine-advanced.md): 24 câu hỏi, Mid-Level - [API Platform](https://sharpskill.dev/vi/technologies/symfony/cau-hoi-phong-van/api-platform.md): 22 câu hỏi, Mid-Level - [Serializer Component](https://sharpskill.dev/vi/technologies/symfony/cau-hoi-phong-van/serializer.md): 20 câu hỏi, Mid-Level - [Events & Event Subscribers](https://sharpskill.dev/vi/technologies/symfony/cau-hoi-phong-van/events-subscribers.md): 20 câu hỏi, Mid-Level - [Console & Commands](https://sharpskill.dev/vi/technologies/symfony/cau-hoi-phong-van/console-commands.md): 18 câu hỏi, Mid-Level - [Messenger Component](https://sharpskill.dev/vi/technologies/symfony/cau-hoi-phong-van/messenger.md): 22 câu hỏi, Mid-Level - [HTTP Client](https://sharpskill.dev/vi/technologies/symfony/cau-hoi-phong-van/http-client.md): 18 câu hỏi, Mid-Level - [Cache & Hiệu năng](https://sharpskill.dev/vi/technologies/symfony/cau-hoi-phong-van/cache.md): 20 câu hỏi, Mid-Level - [Workflow Component](https://sharpskill.dev/vi/technologies/symfony/cau-hoi-phong-van/workflow.md): 18 câu hỏi, Mid-Level - [Testing Symfony](https://sharpskill.dev/vi/technologies/symfony/cau-hoi-phong-van/testing.md): 22 câu hỏi, Mid-Level - [Mailer Component](https://sharpskill.dev/vi/technologies/symfony/cau-hoi-phong-van/mailer.md): 16 câu hỏi, Mid-Level - [Bản dịch & i18n](https://sharpskill.dev/vi/technologies/symfony/cau-hoi-phong-van/translations.md): 16 câu hỏi, Mid-Level - [EasyAdmin Bundle](https://sharpskill.dev/vi/technologies/symfony/cau-hoi-phong-van/easyadmin.md): 18 câu hỏi, Mid-Level - [Kiến trúc Symfony](https://sharpskill.dev/vi/technologies/symfony/cau-hoi-phong-van/architecture-patterns.md): 24 câu hỏi, Senior - [Hiệu năng & Tối ưu hóa](https://sharpskill.dev/vi/technologies/symfony/cau-hoi-phong-van/performance-optimization.md): 22 câu hỏi, Senior - [Bảo mật nâng cao](https://sharpskill.dev/vi/technologies/symfony/cau-hoi-phong-van/security-advanced.md): 22 câu hỏi, Senior - [Custom Bundle](https://sharpskill.dev/vi/technologies/symfony/cau-hoi-phong-van/custom-bundles.md): 20 câu hỏi, Senior - [Microservices với Symfony](https://sharpskill.dev/vi/technologies/symfony/cau-hoi-phong-van/microservices.md): 22 câu hỏi, Senior - [Real-time & WebSockets](https://sharpskill.dev/vi/technologies/symfony/cau-hoi-phong-van/real-time.md): 18 câu hỏi, Senior - [Deployment & DevOps](https://sharpskill.dev/vi/technologies/symfony/cau-hoi-phong-van/deployment-devops.md): 20 câu hỏi, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/vi/technologies/symfony/cau-hoi-phong-van/validation