Laravel中的通知功能



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

<?php
namespace AppHttpControllers;
use Auth;
use Hash;
use AppModels{
Fileupload,
User
};
use IlluminateHttpRequest;
use IlluminateSupportFacadesStorage;
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 AppHttpControllers;
use Auth;
use AppModelsFileupload;
use IlluminateHttpRequest;
use IlluminateSupportFacadesStorage;
class FileuploadController extends Controller
{
/**
* Display a listing of the resource.
*
* @return IlluminateHttpResponse
*/
public function index()
{
$dashboardTitle = "Files";
$isCurrent = "Files";
return view('dashboard.files', [
'dashboardTitle' => $dashboardTitle,
'isCurrent' => $isCurrent
]);
}
/**
* Show the form for creating a new resource.
*
* @return IlluminateHttpResponse
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param  IlluminateHttpRequest  $request
* @return IlluminateHttpResponse
*/
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  AppModelsFileupload  $fileupload
* @return IlluminateHttpResponse
*/
public function show(Fileupload $fileupload)
{

}
/**
* Show the form for editing the specified resource.
*
* @param  AppModelsFileupload  $fileupload
* @return IlluminateHttpResponse
*/
public function edit(Fileupload $fileupload)
{
//
}
/**
* Update the specified resource in storage.
*
* @param  IlluminateHttpRequest  $request
* @param  AppModelsFileupload  $fileupload
* @return IlluminateHttpResponse
*/
public function update(Request $request, Fileupload $fileupload)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param  AppModelsFileupload  $fileupload
* @return IlluminateHttpResponse
*/
public function destroy(Fileupload $fileupload)
{
//
}
}

日历

<?php
namespace AppHttpControllers;
use AppModelsEvent;
use IlluminateHttpRequest;
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;
}
}

您可以使用Laravel的基本Notification特性来完成此操作。如果需求不需要电子邮件通知,则通过使用数据库,并在模型中侦听创建或更新的模型挂钩。这需要由您的需求和该的Laravel资源来定义

最新更新