Php 如何使用laravel 5为新邮件发出通知,如电子邮件通知?

Php 如何使用laravel 5为新邮件发出通知,如电子邮件通知?,php,laravel,email,laravel-5,push-notification,Php,Laravel,Email,Laravel 5,Push Notification,我使用的是laravel 5。我想发出一个通知,比如一封电子邮件,当有新邮件时,它会显示尚未打开的邮件数量,如下图所示。我已经使用了计算未打开邮件的函数,但我不知道如何在我的视图中调用它 观点: 您可以运行代码AppServiceProvider.php,并将所有数据传递给布局视图 use Illuminate\Support\Facades\View; class AppServiceProvider extends ServiceProvider { /** * Boo

我使用的是laravel 5。我想发出一个通知,比如一封电子邮件,当有新邮件时,它会显示尚未打开的邮件数量,如下图所示。我已经使用了计算未打开邮件的函数,但我不知道如何在我的视图中调用它

观点:


您可以运行代码
AppServiceProvider.php
,并将所有数据传递给布局视图

use Illuminate\Support\Facades\View;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        View::composer('layouts.app', function ($view) {
            $mail = MailController::checkNewSurat();

            $view->with('mail', $mail);
        });
    }

    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}
控制器

public static function checkNewSurat()
{
    $checknewsurat = SuratOpen::select('id_surat')
                                ->where('id_user', '=', Auth::user()->id)
                                ->where('opened', '=', '0')
                                ->count();

    return $checknewsurat;
}
在这之后,您可以在
layouts/app.blade.php
中请求
$mail
变量来回送已计数的打开邮件

小代码预览:

<li>
    Mails 
    @if($mail > 0)
        <span>{{ $mail }}</span>
    @endif
</li>
  • 邮寄 @如果($mail>0) {{$mail} @恩迪夫

  • 希望这能奏效

    您应该在appserviceProvider.php中将文件更改为layouts/sidebar

    我在View::composer('layouts.App',function($View)中发现了一个错误
    类'App\Providers\View'将此添加到您的使用中:
    use illumb\Support\Facades\View;
    在您的
    appserviceprovider.php
    中,我想在侧边栏.blade.php中回显已计数的打开邮件。我应该将
  • 邮件@if($mail>0){{$mail}@endif
  • 在其内部或app.blade.php中?如果我将其添加到我的sidebar.blade.php
  • 中,我会得到一个未定义的错误变量:mail(视图:C:\xampp\htdocs\master\resources\views\sidebar.blade.php)
    公共函数boot(){View::composer('includes/sidebar',function($View){$mail=SuratController::checkNewSurat();$view->with('mail',$mail);});}
    Class'App\Providers\SuratController'未找到您需要添加use App\SuratControllerI我已经尝试过了,但是没有找到类'App\SuratController'。您使用哪个命名空间?在我的AppServiceProvider中使用命名空间App\Providers。在我的SuratController中,命名空间是命名空间App\Http\Controllers
    public static function checkNewSurat()
    {
        $checknewsurat = SuratOpen::select('id_surat')
                                    ->where('id_user', '=', Auth::user()->id)
                                    ->where('opened', '=', '0')
                                    ->count();
    
        return $checknewsurat;
    }
    
    <li>
        Mails 
        @if($mail > 0)
            <span>{{ $mail }}</span>
        @endif
    </li>