IDs por visualização no Laravel

Para minhas visualizações, gosto que cada página tenha um identificador que me diga qual visualização está sendo renderizada. Isso me permite compartilhar facilmente um monte de estilos genéricos, mas personalizá-los por visualização usando substituições acionadas por esses identificadores exclusivos.

Simplesmente, crio um criador de visualização para definir uma variável, assim:

View::creator('*', function($view){
if(!isset($view->page_identifier)) {
$view
->with('page_identifier', str_replace('.', '-', $view->getName()));
}
});

Isso define uma variável $page_identifierque pode ser usada em seus layouts para configurar um ID exclusivo ou classe em sua tag body (ou qualquer contêiner que você quiser).

Por exemplo, se você tiver uma visão no diretório app/views/products/show.blade.php, $page_identifierserá igual a products-show.

Agora você pode usar esta variável em seus layouts para definir um ID ou classe, por exemplo

<body id="{{{ $page_identifer }}}">