せずに誰かを招待:(。すなわち、既にアカウントを持っている人を)Laravelチームワークは、私はチームワークモジュールでLaravel 5.4を使用しているアカウント
https://github.com/mpociot/teamwork
モジュールがユーザーに招待状を送信するように設定されています招待者に参加する。私はまだアカウントを持っていない潜在的なユーザーを招待して、1つのステップでチームを作成してチームに参加できるようにしたいと思います。
これはチームワークAuthControllerの現在のacceptInvite機能である:
public function acceptInvite($token)
{
$invite = Teamwork::getInviteFromAcceptToken($token);
if (!$invite) {
abort(404);
}
if (auth()->check()) {
Teamwork::acceptInvite($invite);
return redirect()->route('teams.index');
} else {
session(['invite_token' => $token]);
return redirect()->to('login');
}
}
は、だから私は、代わりに、ログインページの登録ページにリダイレクトするためにそれを変更しました。これはRegisterControllerで関数を作成している:上記のコードで
protected function create(array $data)
{
$user = User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
$id= $user->id; // Get current user id
$token = session('invite_token');
$invite = Teamwork::getInviteFromAcceptToken($token);
Debugbar::info($invite);
if ($invite) {
return $user;
Teamwork::acceptInvite($invite);
} else {
//create a team
...
}
}
Debugbar ::情報($招待)debugbarでこれを生成します。
#original: array:9 [
"id" => 4
"user_id" => 13
"team_id" => 11
"type" => "invite"
"email" => "[email protected]"
"accept_token" => "ddde37c58aa6376533fa289c89bee32e"
"deny_token" => "450b433bd51b2520a78c24563e8c81c9"
"created_at" => "2017-10-08 20:58:45"
"updated_at" => "2017-10-08 20:58:45"
]
しかし、招待は受け入れられません。新しいチームが作成されていないため、($ invite)が働いていると私は知っています。私はここで間違って何をしていますか?
私はそれをした理由は、私は次のようなエラーになったということでした。null'なので 上メンバ関数attachTeamに 'FatalThrowableError コールを()これは 'Teamwork :: acceptInvite($ invite)'行によって引き起こされ、googleの検索によると、読み込まれているユーザがないためです。 – matt9292
これはおそらく、ユーザーがまだ認証されていないためです。私はこの問題を解決するためのいくつかの提案で私の答えを更新しています。 – Camilo