J'utilise Laravel 5.4 avec le module de travail d'équipe:Laravel Travail d'équipe inviter quelqu'un sans un compte
https://github.com/mpociot/teamwork
Le module est configuré pour envoyer des invitations aux utilisateurs (.-À-dire les personnes qui ont déjà un compte) pour rejoindre l'hôte. Je voudrais inviter les utilisateurs potentiels qui n'ont pas encore de compte, à leur permettre d'en créer un et de rejoindre l'équipe en une seule étape.
Ceci est la fonction acceptInvite actuelle dans le travail d'équipe AuthController:
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');
}
}
J'ai donc changé pour rediriger vers la page d'inscription au lieu de la page de connexion. Ensuite, c'est la fonction de création dans le 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 :: info ($ qu'inviter) dans le code ci-dessus produit ce dans le 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"
]
Mais l'invitation est pas acceptée. Je sais que si ($ invite) fonctionne parce qu'une nouvelle équipe n'est pas créée. Qu'est-ce que je fais mal ici?
La raison pour laquelle je l'ai fait était que je recevais l'erreur suivante: 'FatalThrowableError appel à une fonction de membre attachTeam() sur null' Cela est dû à la ligne 'Teamwork :: acceptInvite ($ invite)' et selon une recherche google, aucun utilisateur n'est chargé. – matt9292
C'est probablement parce que l'utilisateur n'est pas encore authentifié. Je mets à jour ma réponse avec quelques suggestions pour résoudre ce problème. – Camilo