how to add custom validation and message in laravel nova for one field
Asked Answered
L

2

6

I want to add custom validation for one field in laravel nova resource file.

I have one field in db which is service_id in the service table and I have nova resource file for the same table. On create service I want to get data using service_id from other table and check data is present or not and if present then I don't want to enter that service_id in table.

So can someone help me how can I write custom validation rules in laravel nova resource file?

Liverwort answered 19/3, 2019 at 16:59 Comment(0)
T
5

Using the following command, you can create a custom rule class:

php artisan make:rule CustomRule

Inside the fields function in your resource:

Text::make('Service ID', 'service_id')->rules(new CustomRule());

Go back to your rule file and inside the passes function:

public function passes($attribute, $value)
{
    //You can check inside the database if your record exists
    return false; //if the rule should stop the user
    return true; //if everything is fine and you want the user to proceed.
}

public function message()
{
    return 'Return your custom error message';
}
Tso answered 23/10, 2020 at 9:37 Comment(0)
N
0

In Laravel 11.x, this can be done using the built in exists rule:

 Text::make('Service ID', 'service_id')->rules('exists:service,service_id')

See https://laravel.com/docs/11.x/validation

Nicety answered 12/7 at 15:21 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.