2017-02-18 17 views
0

Как я могу установить свое собственное имущество на модели перед тем, как сохранить его, но только когда я создал новую строку/запись?Как установить uuid по умолчанию для сохранения модели Laravel 5.3+?

Пример PHP:

class foo extends controller { 
    // .. 
    public function create() { 
     $user = new User(); 
     $user->name = 'Jack'; 
     $user->lastname = 'Smith'; 
     $user->save(); 
    } 
    // .. 
} 

Модель:

class User extends Model { 
    // ... 
    public function beforeSave() { 
     $this->token = uuid(); 
    } 
    // ... 
} 

Таблица:

CREATE TABLE User 
    (
     `uuid` varchar(55), 
     `name` varchar(55) NOT NULL, 
     `lastname` varchar(55) NOT NULL, 
     primary key (`uuid`) 
    ) 
; 
+1

Возможно, это решение поможет вам или указать правильное направление: http://stackoverflow.com/questions/31817067/laravel-5-using-a -uuid-as-primary-key –

ответ

1

, как я знаю, в вашей модели добавить загрузки() метод

public static function boot() 
{ 
    parent::boot(); 

    self::creating(function($model){ 
     // ... code here 
    }); 

} 

так же, как и this solutionthis one

или вы можете использовать model observers

+0

спасибо, эта работа для меня на Laravel 5.4;) –