Laravel 5.3 auth-check-in constructor false zurückgeben
Ich bin mit Laravel 5.3
und ich versuche, das authentifiziert Benutzers id
im constructor
Methode, so dass ich filtern kann der Benutzer durch die Beauftragten Unternehmen wie folgt:
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Support\Facades\View;
use App\Models\User;
use App\Models\Company;
use Illuminate\Support\Facades\Auth;
class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests ;
public $user;
public $company;
public function __construct()
{
$companies = Company::pluck('name', 'id');
$companies->prepend('Please select');
view()->share('companies', $companies);
$this->user = User::with('profile')->where('id', \Auth::id())->first();
if(isset($this->user->company_id)){
$this->company = Company::find($this->user->company_id);
if (!isset($this->company)) {
$this->company = new Company();
}
view()->share('company', $this->company);
view()->share('user', $this->user);
}
}
Dies jedoch nicht den Benutzer id
. Ich habe sogar versucht die Auth::check()
und es funktioniert nicht.
Wenn ich den Auth::check()
aus der __construct()
Methode dann funktioniert das wie folgt:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HomeController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
$this->middleware('auth');
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
dd(\Auth::check());
return view('home');
}
}
Jedoch diese fehl wenn ich diese in die construct-Methode in der HomeController
auch!
Irgendwelche Ideen, warum das fehlschlägt?
Du musst angemeldet sein, um einen Kommentar abzugeben.
docs
Seit 5.3
Auth::check
funktioniert nicht auf einem controller ist construtor, es ist eine undokumentierte änderungen. So, Sie brauchen, um es zu bewegen, um die middleware-do-check-in controller-Methoden statt oder move-Projekt zu 5.2.x.Es schlägt fehl, da rufen Sie
$this->middleware('auth');
nachparent::__construct();
. Es bedeutet, dass Sie die auth-middleware ist nicht ordnungsgemäß eingelegt.