• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
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
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


Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


  Theme © 2014 iAndrew  
Powered By MyBB, © 2002-2020 MyBB Group.