Usando View Composers no Laravel 4

Às vezes, uma visão precisará de uma variável sempre que for carregada. Talvez estejamos desenvolvendo um sistema de rastreamento de usuários e desejamos exibir o número de usuários cadastrados em nosso sistema ao lado de um botão para exibir a lista de usuários. Se tivermos um controlador de recursos para nosso Usermodelo, teremos que passar uma contagem de usuários em cada método nesse controlador que exibe uma visualização, que é cada um deles! Isso não é muito SECO ! Felizmente, o Laravel vem com uma maneira de incluir essa variável em todas as chamadas para uma determinada visualização. Fazemos isso por meio do uso de compositores de visualização .

Vamos ver como podemos implementar o comportamento que descrevemos acima.

View::composer('layouts.user', function($view)
{
$view
->with('num_of_users', User::getUserCount());
});

Sempre que a visualização “layouts.user” é carregada, a getUserCount()função no Usermodelo é disparada e o resultado é armazenado na $num_of_usersvariável. Esta variável agora estará disponível na visualização “layouts.user”. Isso nos permite usar o código a seguir com confiança.

{{ link_to_route('user.index', 'All Users: ' . $num_of_users) }}

Droga, isso foi fácil! Obrigado, Laravel!