【问题标题】:Notification function in LaravelLaravel 中的通知功能
【发布时间】:2021-09-04 18:18:11
【问题描述】:

我想在我的 Laravel 仪表板中开发一个通知,通知用户是否有更新。例如日历中的新上传或新事件。我怎样才能做到这一点?以下是我的控制器和路由。

<?php

namespace App\Http\Controllers;

use Auth;
use Hash;
use App\Models\{
    Fileupload,
    User
};
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use Datables;

class DashboardController extends Controller
{
    public function dashboard()
    {
        $dashboardTitle = "Dashboard";
        $isCurrent = "dashboard";

        return view('dashboard.index', [
            'dashboardTitle' => $dashboardTitle,
            'isCurrent' => $isCurrent
        ]
    );
    }
    public function profile()
    {
        $dashboardTitle = "Profile";
        $isCurrent = "Profile";
        $users = User::all();

        $fileuploads = Fileupload::where('user_id', Auth::user()->id)
            ->limit(3)
            ->latest()
            ->get();

        return view('dashboard.profile', [
            'dashboardTitle' => $dashboardTitle,
            'isCurrent' => $isCurrent,
            'users' => $users,
            'fileuploads' => $fileuploads,
        ]);
    }

    public function editProfile()
    {
        $dashboardTitle = "Profile Edit";
        $isCurrent = "prodile edit";

        $user = User::where('id', Auth::user()->id)
            ->first();

        return view('dashboard.profile-edit', [
            'dashboardTitle' => $dashboardTitle,
            'isCurrent' => $isCurrent,
            'user' => $user,
        ]);
    }

    public function updateProfile(Request $request)
    {
        $user = User::where('id', Auth::user()->id)
            ->first();

        $user->name = $request->get('name');
        $user->password = Hash::make($request->get('password'));
        $user->contact_no = $request->get('contact_no');
        $user->bdate = $request->get('bdate');

        $user->profile_image = $request->file('profile_image') ? Storage::disk('public')->put('images', $request->profile_image) : $user->profile_image;

        $user->save();

        return redirect(route('dashboard.profile'));
    }

    public function directory()
    {
       $dashboardTitle = "Directory";
    $isCurrent = "Directory";
    $users = User::all();
    return view('dashboard.directory', [
        'dashboardTitle' => $dashboardTitle,
        'isCurrent' => $isCurrent,
        'users' => $users
    ]);

    
    }
    public function journal()
    {
        $dashboardTitle = "Journal";
        $isCurrent = "Journal";
        return view('dashboard.journal', [
            'dashboardTitle' => $dashboardTitle,
            'isCurrent' => $isCurrent
        ]
    );
    }
    public function files()
    {
        $dashboardTitle = "Files";
        $isCurrent = "Files";
        return view('dashboard.files', [
            'dashboardTitle' => $dashboardTitle,
            'isCurrent' => $isCurrent
        ]
    );
    }

    public function calendar()
    {
        $dashboardTitle = "Calendar";
        $isCurrent = "calenadr";

        return view('dashboard.calendar', [
            'dashboardTitle' => $dashboardTitle,
            'isCurrent' => $isCurrent
        ]
    );
    }
    
    public function delete(){
      $user = Auth::user();
        Auth::logout();
        
    
        if ($user->delete()) {
    
             return redirect(route('home.index'));
        }
    
    }
    
}

这里是用于文件上传的。

<?php

namespace App\Http\Controllers;

use Auth;
use App\Models\Fileupload;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;

class FileuploadController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $dashboardTitle = "Files";
        $isCurrent = "Files";
        return view('dashboard.files', [
            'dashboardTitle' => $dashboardTitle,
            'isCurrent' => $isCurrent
        ]);
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function files(Request $request)
    {
        $file = $request->file('uploadedfile');
        $filename = $file->getClientOriginalName();
        $filename = time(). '.' .$filename;
    
        $path = Storage::disk('docs')
            ->putFileAs(
                "/" . Auth::user()->id,
                $file,
                $filename
            );
    
        Fileupload::create([
            'user_id' => Auth::user()->id,
            'filename' => $path
        ]);

        return redirect(route('dashboard.profile'));
    }

    /**
     * Display the specified resource.
     *
     * @param  \App\Models\Fileupload  $fileupload
     * @return \Illuminate\Http\Response
     */
    public function show(Fileupload $fileupload)
    {
      
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\Models\Fileupload  $fileupload
     * @return \Illuminate\Http\Response
     */
    public function edit(Fileupload $fileupload)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Models\Fileupload  $fileupload
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, Fileupload $fileupload)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\Models\Fileupload  $fileupload
     * @return \Illuminate\Http\Response
     */
    public function destroy(Fileupload $fileupload)
    {
        //
    }
}

日历

<?php

namespace App\Http\Controllers;

use App\Models\Event;
use Illuminate\Http\Request;

class EventController extends Controller
{
    public function getEvents()
    {
        return Event::find(1);
    }

    public function addEvent(Request $request)
    {
        $event = Event::find(1);
        $event->events = $request->get('events');
        $event->save();

        return $event;
    }
}

【问题讨论】:

    标签: javascript php html notifications laravel-8


    【解决方案1】:

    你可以使用 Laravel 的基本通知特性来做到这一点。如果需求不需要电子邮件通知,请使用数据库,并在模型中侦听创建或更新的模型挂钩。这需要由您的需求和 Laravel 资源来定义

    【讨论】:

      猜你喜欢
      • 2014-08-24
      • 1970-01-01
      • 1970-01-01
      • 2014-08-16
      • 1970-01-01
      • 1970-01-01
      • 2018-10-17
      • 2017-04-11
      • 2016-03-23
      相关资源
      最近更新 更多