我是Laravel和Web开发的绝对初学者。 我想在Facebook,Twitter和stackoveflow上添加类似于一个的通知系统。 但是,我不知道从哪里开始。 我想向熟悉如何设置系统的任何人提出几个问题。
第一个问题:
我想知道一个方法/函数,告诉我调用方法/函数的次数。在我的情况下,我想有功能的数量'存储'在header.blade.php文件中调用。
就像facebook,twitter和stackoverflow告诉你,你的朋友和粉丝对你的照片或推文发表评论,或者有人对你的问题提出答案,然后这个数字出现在通知图标上,我想要功能号码' store'已被召唤一段时间。
ReasonsController.php
public function store(CreateReasonRequest $request, $course_id){
$reason = new Reason($request->all());
$reason->course_id = $course_id;
\Auth::user()->reasons()->save($reason);
return redirect('student/home');
}
Header.blade.php
<a id="dLabel" role="button" data-toggle="dropdown" data-target="#" href="/page.html">
<span class = "badge" id = "number">
<i class="glyphicon glyphicon-bell">
{{-- the number of the function 'store' being called comes here--}}
</i>
</span>
</a>
第二个问题:
当用户点击Facebook和Twitter上的图标时,图标上的数字会消失,如您所想。我该怎么做?我应该用什么语言,javascript? jQuery的? CSS?
英语不是我的第一语言,所以如果这篇文章没有意义,请留下你的评论。 任何意见,将不胜感激!!谢谢!
答案 0 :(得分:1)
每次调用store()
时,都会将新的Reason
保存到数据库并将其与用户权限相关联?要显示原因的数量,您只需要确定与登录用户相关联的记录数(在表reasons
中)。从上面的代码判断,您已经在User模型中设置了reasons
关系,获取总行数就像调用\Auth::user()->reasons()->count();
一样简单。
将此代码放入Header.blade.php
@if (Auth::guest())
Please login first.
@else
{{ Auth::user()->reasons()->count() }}
@endif
假设您有一个notifications
表,您可以向架构添加unread
布尔值,以了解用户是否已阅读通知。当您需要未读通知的数量时,请编写
Auth::user()->notifications()->where("unread",true)->count()
当您单击该图标时,会向服务器发送AJAX request
以获取所有未读消息。 JavaScript用于清除通知计数。同时,服务器将与该用户相关的所有通知的unread
属性设置为false。因此,在页面刷新时,Auth::user()->notifications()->where("unread",true)->count()
将返回0.