在每次加载页面时在Laravel中运行命令
我想在每次加载页面时加载一个带有Laravel的命令在每次加载页面时在Laravel中运行命令,laravel,laravel-5,laravel-5.1,Laravel,Laravel 5,Laravel 5.1,我想在每次加载页面时加载一个带有Laravel的命令 $mail_count = mail::where('to_id', '=', Auth::user()->id)->where('read', '=', '0')->count('read'); 最好的方法是什么?然后需要将结果输出到页面的主模板中。您可以在laravel提供程序中使用它 转到boot函数粘贴变量中的AppServiceProvider.php $mail_count = mail::where('to_
$mail_count = mail::where('to_id', '=', Auth::user()->id)->where('read', '=', '0')->count('read');
最好的方法是什么?然后需要将结果输出到页面的主模板中。您可以在laravel提供程序中使用它 转到
boot
函数粘贴变量中的AppServiceProvider.php
$mail_count = mail::where('to_id', '=', Auth::user()->id)->where('read', '=', '0')->count('read');
然后,您可以使用以下选项之一执行此操作:
一,
二,
将视图生成器用于主模板,例如:
// 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\u count}}来打印结果。因此,在本例中,它所做的是,每当呈现
views\layouts\master.blade.php
时,将调用compose
方法,并将$mail\u count
附加到视图中。确保使用视图的确切名称,我在本例中使用了layouts.master
(views/layouts/master.blade.php)。最好将其放入控制器的构造函数中。哪个控制器?我需要把它放进全部还是只放在主控制器上?
// app/providers/ComposerServiceProvider.php
public function boot()
{
view()->composer(
'layouts.master', 'App\Http\ViewComposers\MasterComposer'
);
}
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);
}
}