2015-05-06 5 views
1

Я хочу прослушать событие загрузки (или рендеринга) , как я могу это сделать в Laravel 5, используя фасад *Event:: в файле routes.php.Laravel 5: Просмотреть загруженное событие

+1

Вы можете использовать 'View :: composer()', что вам нужно? Поделиться больше информации. –

+0

Что мне нужно, так это то, что я хочу сделать что-то общее для всех видов моего приложения. – Sn0opr

+1

@ TheAlpha. Это то, что мне нужно, спасибо, добавьте ответ, чтобы я мог проверить, как разрешено, танк вас – Sn0opr

ответ

1

Вместо этого вы можете использовать, например, view::composer, если вы хотите передавать некоторые общие данные каждый раз при загрузке представления, тогда в этом случае создайте view::composer в «App \ Http \ ViewComposers» и зарегистрируйте его, используя поставщика услуг, например это:

<?php namespace App\Providers; 

use View; 
use Illuminate\Support\ServiceProvider; 

class ComposerServiceProvider extends ServiceProvider { 

    public function boot() 
    { 
     // Run "compose" method from "App\Http\ViewComposers\ProfileComposer" class 
     // whenever the "profile" view (Basically profile.blade.php) view is loaded 
     View::composer('profile', 'App\Http\ViewComposers\ProfileComposer'); 
    } 
} 

Затем создайте ProfileComposer как это (Взято из Laravel документации):

<?php namespace App\Http\ViewComposers; 

use Illuminate\Contracts\View\View; 
use Illuminate\Users\Repository as UserRepository; 

class ProfileComposer { 

    protected $users; 

    public function __construct(UserRepository $users) 
    { 
     $this->users = $users; 
    } 

    // Bind data to the view 
    public function compose(View $view) 
    { 
     $view->with('count', $this->users->count()); 
    } 
} 

Таким образом, каждый раз, когда вы загрузите profile view переменную $count будут связаны с этой точки зрения, и вы можете использовать его, как и другие переменные в вашем view. Вот и все. Подробнее читайте на странице Laravel website.

Смежные вопросы