2016-12-05 3 views
1

私は一致しない場合は、ユーザーを作成したいとFirstOrCreate:のみいくつかの属性

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

しかし、私はまた、他の属性が一致しても毎回異なるものになりますどのtokenを保存する必要があります。だから、nameemailavatarとのみ一致するものが必要ですが、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

は、2番目のパラメータとして追加値の配列を渡します。

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

それはfirstOrCreate()メソッドのソースコードを見てどのように動作するかを理解します。

関連する問題