一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專(zhuān)注于服務(wù)器技術(shù)及軟件下載分享
分類(lèi)導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - PHP教程 - laravel 使用事件系統(tǒng)統(tǒng)計(jì)瀏覽量的實(shí)現(xiàn)

laravel 使用事件系統(tǒng)統(tǒng)計(jì)瀏覽量的實(shí)現(xiàn)

2021-09-06 17:17懶驢打滾 PHP教程

今天小編就為大家分享一篇laravel 使用事件系統(tǒng)統(tǒng)計(jì)瀏覽量的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

最近有一個(gè)商城項(xiàng)目中有統(tǒng)計(jì)商品點(diǎn)擊量和藝術(shù)家訪問(wèn)量的需求,但又不想改動(dòng)太多原來(lái)的代碼,而點(diǎn)擊與訪問(wèn)這兩個(gè)動(dòng)作是有明確觸發(fā)點(diǎn)的,正好可以用laravel中的事件系統(tǒng)來(lái)做,在點(diǎn)擊和訪問(wèn)對(duì)應(yīng)的函數(shù)中產(chǎn)生這倆事件,監(jiān)視器獲取到之后,再將記錄保存到數(shù)據(jù)庫(kù)中,并更新計(jì)數(shù)。

1、在 app\Providers\EventServiceProvider

中注冊(cè)監(jiān)聽(tīng)器:

?
1
2
3
4
5
6
7
8
9
10
11
12
/**
 * The event listener mappings for the application.
 *
 * @var array
 */
protected $listen = [
 ......
 'App\Events\Statistics' => [
  'App\Listeners\BehavioralStatistics',
 ],
 ......
];

2、執(zhí)行

?
1
php artisan event:generate

生成事件類(lèi)與監(jiān)聽(tīng)類(lèi)

3、定義事件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
 
namespace App\Events;
 
use Illuminate\Broadcasting\Channel;
use Illuminate\Queue\SerializesModels;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
 
class Statistics
{
 use Dispatchable, InteractsWithSockets, SerializesModels;
 
 public $user;
 public $obj;
 
 /**
  * Create a new event instance.
  *
  * @return void
  */
 public function __construct($user,$obj)
 {
  $this->user = $user;
  $this->obj = $obj;
 }
 
 /**
  * Get the channels the event should broadcast on.
  *
  * @return \Illuminate\Broadcasting\Channel|array
  */
 public function broadcastOn()
 {
  return new PrivateChannel('channel-name');
 }
}

4、定義監(jiān)聽(tīng)器:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
 
namespace App\Listeners;
 
use App\Events\Statistics;
use App\System\StaticsView;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Support\Facades\Log;
 
class BehavioralStatistics
{
 /**
  * Create the event listener.
  *
  * @return void
  */
 public function __construct()
 {
  //
 }
 
 /**
  * Handle the event.
  *
  * @param Statistics $event
  * @return void
  */
 public function handle(Statistics $event)
 {
  $obj_class = get_class($event->obj);
  $statics_view = new StaticsView;
 
  switch($obj_class){
   case "App\\User":
    $statics_view->statics_type = 'user';
 
    break;
   case "App\\Production":
    $statics_view->statics_type = 'production';
 
    break;
  }
 
  $statics_view->ip = request()->getClientIp();;
  $statics_view->time_local = 0;
  $statics_view->statics_id = $event->obj->id;
  $statics_view->save();
 }
}

5、觸發(fā)事件:

?
1
event(new Statistics(user, user,user,production));

以上這篇laravel 使用事件系統(tǒng)統(tǒng)計(jì)瀏覽量的實(shí)現(xiàn)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://blog.csdn.net/hhhzua/article/details/80635808

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产伦久视频免费观看视频 | 欧美日韩亚洲另类人人澡 | 99热在线只有精品 | 青青青在线视频播放 | 日本孕妇与黑人xxxxxx | 无码人妻少妇色欲AV一区二区 | 青草影院在线观看 | 日韩性生活片 | 糖心在线观看 | 国产三级精品三级男人的天堂 | xxx黑人又大粗又长 xxxx性欧美极品另类 | 日韩一级在线观看 | 欧美同性猛男videos | 视频在线网站 | 欧美一区二区三区精品 | 91次元成年破解版 | 国产高清经典露脸3p | 色老板在线视频 | 全黄h全肉细节文在线观看 全彩成人18h漫画 | 国产东北三老头伦一肥婆 | 好大好爽好硬我要喷水了 | 欧美日韩一区视频 | 国产精品视频第一区二区 | 国产成人精品视频频 | 日产精品视频 | 俄罗斯一级淫片bbbb | 极品虎白女在线观看一线天 | 四虎4hu永久免费 | 视频一区二区国产无限在线观看 | 小SAO货边洗澡边CAO你动漫 | 欧美日韩一品道 | 久久精品国产在热亚洲完整版 | 99久久久久国产精品免费 | 国产成人无精品久久久久国语 | 亚洲一区二区成人 | 精品国产乱码久久久久久免费流畅 | free极度另类性欧美 | 国内久久 | 天生奶水1v1高h | 男人j桶进女人p桶爽 | 亚洲欧美日韩中文字幕网址 |