Excluindo cookies no Laravel

A abordagem convencional para remover cookies do Laravel é chamar o #forgetmétodo na Cookiefachada.

$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 $cookieobjeto à resposta, uso o #queuemétodo para evitá-lo completamente.

Cookie::queue(Cookie::forget('myCookie'));
return ['ok' => true];

O #queuemé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!