Bird
Raised Fist0
Laravelframework~5 mins

Custom validation rules in Laravel - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a custom validation rule in Laravel?
A custom validation rule in Laravel is a user-defined rule that lets you check data in ways not covered by Laravel's built-in validators. It helps you create specific checks for your app's needs.
Click to reveal answer
beginner
How do you create a custom validation rule class in Laravel?
Use the Artisan command: <code>php artisan make:rule RuleName</code>. This creates a class where you define the <code>passes()</code> method to check the value and <code>message()</code> to return an error message.
Click to reveal answer
beginner
What does the passes() method do in a Laravel custom rule?
The passes() method checks if the given value meets your custom condition. It returns true if valid, or false if invalid.
Click to reveal answer
intermediate
How do you apply a custom validation rule to a form request in Laravel?
In your form request's <code>rules()</code> method, add the custom rule class instance to the field's rules array, like <code>'field' => ['required', new RuleName()]</code>.
Click to reveal answer
intermediate
Can custom validation rules accept parameters? How?
Yes. You can pass parameters via the rule class constructor when creating the rule instance. Then use those parameters inside <code>passes()</code> to customize validation.
Click to reveal answer
Which Artisan command creates a custom validation rule class?
Aphp artisan make:rule RuleName
Bphp artisan make:validation RuleName
Cphp artisan create:rule RuleName
Dphp artisan generate:rule RuleName
What should the passes() method return if the value is valid?
Anull
Btrue
Cfalse
Dan error message
Where do you add a custom validation rule in Laravel?
AIn the routes file
BIn the controller's constructor
CIn the form request's <code>rules()</code> method
DIn the model's <code>boot()</code> method
How do you pass parameters to a custom validation rule?
AVia the rule class constructor
BBy setting global variables
CUsing environment variables
DBy modifying the <code>message()</code> method
What does the message() method in a custom rule do?
AChecks if the value is valid
BDefines the validation logic
CSaves the validation result
DReturns the error message when validation fails
Explain how to create and use a custom validation rule in Laravel.
Think about the steps from creating the rule to applying it in validation.
You got /4 concepts.
    Describe how you can customize a Laravel validation rule with parameters.
    Focus on how data flows into the rule class.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of creating a custom validation rule in Laravel?
      easy
      A. To define your own logic for validating data beyond built-in rules
      B. To change the database schema automatically
      C. To create new database tables
      D. To generate HTML forms automatically

      Solution

      1. Step 1: Understand Laravel validation rules

        Laravel provides built-in rules but sometimes you need to check data in a way not covered by them.
      2. Step 2: Purpose of custom validation rules

        Custom rules let you write your own logic to validate data exactly as you want.
      3. Final Answer:

        To define your own logic for validating data beyond built-in rules -> Option A
      4. Quick Check:

        Custom validation = custom logic [OK]
      Hint: Custom rules check data your way, not Laravel's default [OK]
      Common Mistakes:
      • Thinking custom rules change database structure
      • Confusing validation with form generation
      • Assuming custom rules create tables
      2. Which method must you implement in a Laravel custom validation rule class to check if the data passes validation?
      easy
      A. check
      B. message
      C. validate
      D. passes

      Solution

      1. Step 1: Recall custom rule methods

        Laravel custom validation rules require two methods: passes and message.
      2. Step 2: Identify method for validation logic

        The passes method contains the logic to decide if the data is valid or not.
      3. Final Answer:

        passes -> Option D
      4. Quick Check:

        passes() checks data validity [OK]
      Hint: passes() returns true/false for validation [OK]
      Common Mistakes:
      • Using message() to check data validity
      • Assuming validate() or check() are required methods
      • Confusing method names
      3. Given this custom rule class snippet, what will $rule->passes('age', 17) return?
      class AdultRule implements \Illuminate\Contracts\Validation\Rule {
          public function passes($attribute, $value) {
              return $value >= 18;
          }
          public function message() {
              return 'You must be an adult.';
          }
      }
      medium
      A. true
      B. Throws an error
      C. false
      D. null

      Solution

      1. Step 1: Understand the passes method logic

        The method returns true if the value is 18 or more, false otherwise.
      2. Step 2: Evaluate passes with value 17

        Since 17 is less than 18, the method returns false.
      3. Final Answer:

        false -> Option C
      4. Quick Check:

        17 < 18 means passes() = false [OK]
      Hint: Check condition in passes() with given value [OK]
      Common Mistakes:
      • Assuming 17 passes as adult
      • Thinking passes() throws error for numbers
      • Confusing message() with passes()
      4. What is wrong with this custom validation rule class?
      class EvenNumberRule implements \Illuminate\Contracts\Validation\Rule {
          public function passes($attribute, $value) {
              return $value % 2 == 0
          }
          public function message() {
              return 'The number must be even.';
          }
      }
      medium
      A. message method should return a boolean
      B. Missing semicolon after return statement in passes method
      C. passes method should accept only one parameter
      D. Class must extend a base validation class

      Solution

      1. Step 1: Check syntax in passes method

        The return statement lacks a semicolon at the end, causing a syntax error.
      2. Step 2: Verify other method signatures

        message() correctly returns a string, passes() correctly has two parameters, and implementing the interface is enough.
      3. Final Answer:

        Missing semicolon after return statement in passes method -> Option B
      4. Quick Check:

        Missing semicolon = syntax error [OK]
      Hint: Look for missing semicolons in PHP code [OK]
      Common Mistakes:
      • Thinking message() must return boolean
      • Assuming passes() takes one parameter
      • Believing class must extend base class
      5. You want to create a custom validation rule that checks if a string contains only vowels. Which approach correctly implements the passes method?
      hard
      A. return preg_match('/^[aeiouAEIOU]+$/', $value) === 1;
      B. return strlen($value) > 0 && ctype_alpha($value);
      C. return strpos($value, 'aeiou') !== false;
      D. return $value == strtolower($value);

      Solution

      1. Step 1: Understand the requirement

        The string must contain only vowels (a, e, i, o, u) in any case.
      2. Step 2: Analyze each option

        return preg_match('/^[aeiouAEIOU]+$/', $value) === 1; uses regex to check if the string contains only vowels from start to end. return strlen($value) > 0 && ctype_alpha($value); checks only letters but not vowels. return strpos($value, 'aeiou') !== false; checks if 'aeiou' substring exists, which is incorrect. return $value == strtolower($value); checks if string is lowercase, unrelated to vowels.
      3. Final Answer:

        return preg_match('/^[aeiouAEIOU]+$/', $value) === 1; -> Option A
      4. Quick Check:

        Regex matching only vowels = correct passes() [OK]
      Hint: Use regex to match only vowels in string [OK]
      Common Mistakes:
      • Using ctype_alpha without vowel check
      • Checking substring instead of full string
      • Confusing case check with vowel check
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard