Der Laravel 5.3-Authentifizierungsprüfungskonstruktor gibt „false' zurück
P粉769045426
P粉769045426 2023-10-24 20:03:40
0
2
461

Ich verwendeLaravel 5.3并且我试图在constructor方法中获取经过身份验证用户的id, damit ich Benutzer wie folgt nach einem bestimmten Unternehmen filtern kann:

namespace AppHttpControllers; use IlluminateFoundationBusDispatchesJobs; use IlluminateRoutingController as BaseController; use IlluminateFoundationValidationValidatesRequests; use IlluminateFoundationAuthAccessAuthorizesRequests; use IlluminateSupportFacadesView; use AppModelsUser; use AppModelsCompany; use IlluminateSupportFacadesAuth; 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); } }

Aber das bringt den Benutzer nicht zurückid。我什至尝试过Auth::check()Aber es funktioniert nicht.

Wenn ich dieAuth::check()移出__construct()-Methode hinzufüge, funktioniert es so:

middleware('auth'); } /** * Show the application dashboard. * * @return IlluminateHttpResponse */ public function index() { dd(Auth::check()); return view('home'); } }

Aber wenn ich es auch in den Konstruktor vonHomeControllereinfüge, schlägt diesfehl!

Irgendwelche Ideen, warum dies fehlschlägt?

P粉769045426
P粉769045426

Antworte allen (2)
P粉277464743

自 5.3Auth::check起,它将无法在控制器的构造函数中工作,这是未记录的更改之一。因此,您需要将其移至中间件或检查控制器方法,或将项目移至 5.2.x。

    P粉489081732

    文档

    class ProjectController extends Controller { /** * All of the current user's projects. */ protected $projects; /** * Create a new controller instance. * * @return void */ public function __construct() { $this->middleware(function ($request, $next) { $this->projects = Auth::user()->projects; return $next($request); }); } }
      Neueste Downloads
      Mehr>
      Web-Effekte
      Quellcode der Website
      Website-Materialien
      Frontend-Vorlage
      Über uns Haftungsausschluss Sitemap
      Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!