2016-12-05 74 views
1

我想創建一個用戶,如果不匹配:FirstOrCreate只有一些屬性

$newUser=User::firstOrCreate(array('name' => $user->name, 'email' => $user->email,'avatar'=>$user->avatar)); 

但是,我也需要存儲token其中每一個,即使其他屬性相匹配的時間會有所不同。所以,我需要像name,email,avatar匹配,但也存儲或更新token

回答

1

你能做到這樣:

$newUser = User::firstOrCreate([ 
    'name' => $user->name, 
    'email' => $user->email, 
    'avatar' => $user->avatar 
]); 

$newUser->token = bin2hex(openssl_random_pseudo_bytes(16)); 

$newUser->save(); 

希望這有助於!

1

傳遞附加值的陣列作爲第二個參數:

$newUser = User::firstOrCreate(
    ['name' => $user->name, 'email' => $user->email, 'avatar' => $user->avatar], 
    ['token' => $token] 
); 

要理解其工作原理看firstOrCreate()方法的源代碼。