Используйте View Composer для главного шаблона, например:
// app/providers/ComposerServiceProvider.php
public function boot()
{
view()->composer(
'layouts.master', 'App\Http\ViewComposers\MasterComposer'
);
}
Затем создать класс Composer:
namespace App\Http\ViewComposers;
use Auth;
use App\Mail;
use Illuminate\View\View;
class MasterComposer
{
public function compose(View $view)
{
$mail_count = Mail::where('to_id', Auth::user()->id)
->where('read', 0)
->count('read');
$view->with('mail_count', $mail_count);
}
}
Наконец, вы можете использовать {{$ mail_count}} в вашем мастер зрения чтобы распечатать результат. Итак, в этом случае, что он делает, всякий раз, когда ваш views\layouts\master.blade.php
будет визуализирован, будет вызван метод compose
, и $mail_count
будет прикреплен к представлению. Не забудьте использовать точное имя для представления, я использовал layouts.master
(views/layouts/master.blade.php) для этого примера.
Лучше поместить это в конструктор контроллера. –
Какой контроллер? Должен ли я включить его во все или только из главного контроллера? –