php - laravel5.4 imprime Auth::check(); dans le constructeur de la classe et renvoie false, et l'imprime dans la méthode de la classe et renvoie true
怪我咯2017-05-16 12:58:35
0
2
1124
Au secours, au secours ! laravel5.4 imprime Auth::check(); dans le constructeur de la classe et renvoie false, et l'imprime dans la méthode de la classe et renvoie true. Assurez-vous que vous êtes connecté
Ce problème existe depuis que Laravel 5.3 a commencé à regrouper les routes. La raison en est que le middleware ne s'exécute pas lorsque la construction est exécutée.
Solution
use Closure;
class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
protected $user;
public function __construct(Request $request)
{
$this->middleware(function($request,Closure $next){
$this->user = Auth::user();
return $next($request);
});
}
}
Raison
Ce problème existe depuis que Laravel 5.3 a commencé à regrouper les routes. La raison en est que le middleware ne s'exécute pas lorsque la construction est exécutée.
Solution
fonction __construct(Request $request)