I have laravel project used for apis(Passport). It uses multiple databases one database stores user information and the database name for that user. I created a BaseController
, all the other controllers extends from this controller. But I am not able to fetch Auth::id();
from the BaseController
. How can I get the Auth::id
in the constructor?
class BaseController extends Controller
{
protected $companySchema;
public function __construct() {
$user = \App\User::where('user_id', Auth::id())->first();
$company = $user->company;
$this->companySchema = $company->cmp_Schema;
}
}
After laravel 5.3.4 you can't use Auth::user()
in the constructor because the middleware isn't run yet.
class BaseController extends Controller {
public function __construct() {
$this->middleware(function ($request, $next) {
$this->companySchema = Auth::user()->company->cmp_Schema;
return $next($request);
});
}
}
try this code and tell me if it works