2016-09-27 3 views
1

ich eine Frage Modell wie dieses:Laravel Mutator, die eine eindeutige Zufallszahl erzeugt wird nicht ausgeführt

class Question extends Model 
    { 
     use SoftDeletes; 

     protected $primaryKey = 'question_id'; 
     protected $dates  = ['deleted_at']; 
     protected $fillable = ['text', 'code', 'cat', 'answer', 'is_private', 'email', 'parent']; 


     public function setCodeAttribute ($value) 
     { 
      \Debugbar::info('hello'); 

      do { 
       $code  = rand(10000, 10000000); 
       $user_code = User::where('code', $code)->get(); 

      } while (!$user_code->isEmpty()); 

      return $this->attributes['code'] = $code; 
     } 

    } 

Ich möchte eine zufällige ganze Zahl erzeugen und speichern, dass in code Feld auf Schaffung einer neuen Instanz das Model.

Dafür schrieb ich einen Mutator, wie Sie sehen können, aber es lief nicht einmal.

Was ist ein Problem?

Antwort

1

Nun Mutator selbst nicht laufen, bis Sie nicht anrufen $question->code = $someValue.

Was Sie brauchen, ist observer und saving Methode darin zu definieren, die Einstellung der wie folgt darin code Attributwert bieten wird:

public function saving (Operation $operation) 
    { 
     \Debugbar::info('hello'); 

     do { 
      $code  = rand(10000, 10000000); 
      $user_code = User::where('code', $code)->get(); 

     } while (!$user_code->isEmpty()); 

     return $operation->code = $code; 
    } 

und von corse benötigen Sie den Mutator aus der Modellklasse zu löschen, Gut.

Verwandte Themen