Welcome Guest, Not a member yet? Register   Sign In
Call function in model before validation
#1

Hi guys,
I have a model with the following validation rule.

PHP Code:
'slug'  => 'is_unique[products.slug,ID,{ID}]|alpha_dash' 

I would like to automatically generate a slug when none is provided, so I added:

PHP Code:
protected $beforeInsert = ['generateSlug'];

protected function 
generateSlug(array $data)
    {
        if (empty(
$data['data']['slug']))
        {
            
$data['data']['slug'] = url_title($data['data']['name'], '-'true);
        }

        return 
$data;
    } 


The problem seems that validation rules are evaluated before `beforeInsert` callback is called.

Could you help me?
Thanks.
Reply
#2

(This post was last modified: 01-06-2020, 06:43 AM by littlej.)

Hello,

The simplest solution would be to remove the validation rule you have set, that is blocking the process (probably something like "required", add "permit_empty" instead). Then do the validation yourself like you are doing already in your function.

As I see it, this is not really a "validation" if the provided data is always "valid". It seems to be more like a "filter" function.
Reply




Theme © iAndrew 2016 - Forum software by © MyBB