A abordagem convencional para remover cookies do Laravel é chamar o #forget
método na Cookie
fachada.
$cookie = Cookie::forget('myCookie');
Mas quando fazemos isso, o cookie permanece. O que deu errado? Bem, precisamos ter certeza de adicionar esse cookie à resposta.
return response('view')->withCookie($cookie);
Agora o cookie foi removido. Mas isso é meio chato e fácil de esquecer. Além disso, e se estivermos retornando algum JSON e quisermos usar a sintaxe de retorno mais limpa.
Cookie::forget('myCookie');
return ['ok' => true];
Precisamos perder a sintaxe apenas para remover o cookie?
Cookie :: queue
Em vez de me certificar de adicionar meu $cookie
objeto à resposta, uso o #queue
método para evitá-lo completamente.
Cookie::queue(Cookie::forget('myCookie'));
return ['ok' => true];
O #queue
método permite que você enfileire o resultado de qualquer ação de cookie em que esteja trabalhando, seja criando ou excluindo, e trata de adicioná-lo aos cabeçalhos durante um processo de middleware após a ação do controlador.
Seguir essa abordagem de forma consistente significa que você nunca precisa se preocupar se adicionou o $cookie
à sua resposta ou não. Aproveitar!