Skip to content

Instantly share code, notes, and snippets.

<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
class Tenant
{
/**
<?php
/**
* @param $class
* @param array $attributes
* @param int $times
* @return mixed
*/
function create($class, $attributes = [], $times = 1)
{
<?php
Route::get('/posts', function () {
return \App\Models\Tenant\Post::all();
});
<?php
use App\Models\Tenant\Post;
use Faker\Generator as Faker;
$factory->define(Post::class, function (Faker $faker) {
return [
'title' => $faker->sentence,
'body' => $faker->paragraph
];
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class TenantModel extends Model
{
protected $connection = 'tenant';
}
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class MainModel extends Model
{
protected $connection = 'main';
}
<?php
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
if (! function_exists('tenant_connect')) {
/**
* Establish a tenant database connection.
<?php
use App\Models\Main\Company;
use Faker\Generator as Faker;
$factory->define(Company::class, function (Faker $faker) {
$hostname = '127.0.0.1';
$username = $faker->userName;
$password = $faker->password;
<?php
use App\Models\Main\User;
use App\Models\Main\Company;
use Faker\Generator as Faker;
$factory->define(User::class, function (Faker $faker) {
static $password;
return [
<?php
namespace Tests;
use App\Models\Main\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
abstract class TenantTestCase extends TestCase
{
use RefreshDatabase;