Método auth en el constructor de Laravel
Disponer del método auth en todos los métodos de un controlador
En versiones anteriores de Laravel era posible asignar el método auth desde el método constructor en un controlador. Desde la versión 5.3 Laravel impide utilizarlo desde el constructor pero no desde el resto de métodos, esto implica repetir en cada método del controlador la llamada al método auth(). Para evitar esto es posible asignarlo desde el constructor mediante un middleware, incluyendo un callback y desde éste, Laravel si que permite realizar la llamada al método auth().
Código de ejemplo de llamada al método auth desde el constructor de un controlador en Laravel 5.5
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class NuevoController extends Controller
{
protected $user;
public function __construct(){
$this->middleware(function($request,$next) {
$this->user=auth()->user();
return $next($request);
});
}
Esto solo es posible hasta la versión 5.7 o 5.8, ya que Laravel prescinde de auth en las siguientes versiones. Más info aquí.
Para poder comentar es necesario iniciar sesión