1. Go to this page and download the library: Download mpociot/teamwork library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
mpociot / teamwork example snippets
namespace App;
use Mpociot\Teamwork\TeamworkTeam;
class Team extends TeamworkTeam
{
}
namespace App;
use Mpociot\Teamwork\Traits\UserHasTeams;
class User extends Model {
use UserHasTeams; // Add this trait to your model
}
$user = User::where('username', '=', 'sebastian')->first();
// team attach alias
$user->attachTeam($team, $pivotData); // First parameter can be a Team object, array, or id
// or eloquent's original technique
$user->teams()->attach($team->id); // id only
// Create user owned team and switch the current team to this new team.
$team = $user->createOwnedTeam(['name' => 'My awesome team']);
// If user has another current team active, you should pass second parameter as true to force switch to the new team.
$team = $user->createOwnedTeam(['name' => 'My awesome team'], true);
echo "I'm currently in team: " . Auth::user()->currentTeam->name;
echo "The team owner is: " . Auth::user()->currentTeam->owner->username;
echo "I also have these teams: ";
print_r( Auth::user()->teams );
echo "I am the owner of these teams: ";
print_r( Auth::user()->ownedTeams );
echo "My team has " . Auth::user()->currentTeam->users->count() . " users.";
if( Auth::user()->isTeamOwner() )
{
echo "I'm a team owner. Please let me pay more.";
}
$team = Auth::user()->currentTeam;
if( Auth::user()->isOwnerOfTeam( $team ) )
{
echo "I'm a specific team owner. Please let me pay even more.";
}
try {
Auth::user()->switchTeam( $team_id );
// Or remove a team association at all
Auth::user()->switchTeam( null );
} catch( UserNotInTeamException $e )
{
// Given team is not allowed for the user
}
Teamwork::inviteToTeam( $email, $team, function( $invite )
{
// Send email to user / let them know that they got invited
});
$user = Auth::user();
Teamwork::inviteToTeam( $user , $team, function( $invite )
{
// Send email to user / let them know that they got invited
});
if( !Teamwork::hasPendingInvite( $request->email, $request->team) )
{
Teamwork::inviteToTeam( $request->email, $request->team, function( $invite )
{
// Send email to user
});
} else {
// Return error - user already invited
}
$invite = Teamwork::getInviteFromAcceptToken( $request->token ); // Returns a TeamworkInvite model or null
if( $invite ) // valid token found
{
Teamwork::acceptInvite( $invite );
}
$invite = Teamwork::getInviteFromDenyToken( $request->token ); // Returns a TeamworkInvite model or null
if( $invite ) // valid token found
{
Teamwork::denyInvite( $invite );
}
namespace App\Listeners;
use Mpociot\Teamwork\Events\UserJoinedTeam;
class YourJoinedTeamListener
{
/**
* Create the event listener.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Handle the event.
*
* @param UserJoinedTeam $event
* @return void
*/
public function handle(UserJoinedTeam $event)
{
// $user = $event->getUser();
// $teamId = $event->getTeamId();
// Do something with the user and team ID.
}
}
namespace App\Listeners;
use Mpociot\Teamwork\Events\UserInvitedToTeam;
class YourUserInvitedToTeamListener
{
/**
* Create the event listener.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Handle the event.
*
* @param UserInvitedToTeam $event
* @return void
*/
public function handle(UserInvitedToTeam $event)
{
// $user = $event->getInvite()->user;
// $teamId = $event->getTeamId();
// Do something with the user and team ID.
}
}
use Mpociot\Teamwork\Traits\UsedByTeams;
class Task extends Model
{
use UsedByTeams;
}
// gets all tasks for the currently active team of the authenticated user
Task::all();
// gets all tasks from all teams globally
Task::allTeams()->get();