À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 User
modelo, 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 User
modelo é disparada e o resultado é armazenado na $num_of_users
variá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!