我使用Laravel 5.4與團隊協作模塊:Laravel團隊邀請某人沒有一個帳戶
https://github.com/mpociot/teamwork
模塊設置爲發送邀請給用戶(即誰已經有一個帳戶的人)加入邀請者。我想邀請尚未擁有帳戶的潛在用戶,讓他們創建一個並一步加入團隊。
這是團隊合作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' 'FatalThrowableError 調用一個成員函數attachTeam()這是由'Teamwork :: acceptInvite($ invite)'行引起的,根據谷歌搜索是由於沒有用戶被加載。 – matt9292
這可能是因爲用戶尚未認證。我正在更新我的答案,並提出了一些解決此問題的建議。 – Camilo