vendredi 2 octobre 2015

How do I call model function on create? Laravel-5

I'm trying to create a referral url when a user is first created. My function inside my User model looks like this:

private function make_url()
{
    $url = str_random(40);
    $this->referral_url->url = $url;
    if ($this->save()){
        return true;
    }
    else{
        return false;
    }
}

Within the model, I've tried doing this but didn't work

USER::creating(function ($this){
$this->make_url();
})

I also tried calling it in my User Controller within the create user action

public function create(UserRequest $request)
{
$data = $request->all()
$data['password']= bcrypt($request->input('password'));

if($user=User::create($data))
{
  $user->make_url();
}
}

I get this error in return

Indirect modification of overloaded property App\User::$referral_url has no effect

Thanks in advance for your help guys =]

p.s: If there's a better way to go about creating referral urls please tell me.



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire