Php 如何计算Post(Laravel事件侦听器)的视图数?

Php 如何计算Post(Laravel事件侦听器)的视图数?,php,laravel,laravel-5,Php,Laravel,Laravel 5,我试图计算我的产品的浏览量。为此,在我的产品表中有一列查看\u计数。我正在尝试用事件侦听器实现它 这是我的活动代码: productwasview.php 我使用事件侦听器的控制器: public function singleProduct(Request $request) { $name = $request->name; $product = DB::table('products') ->wh

我试图计算我的产品的浏览量。为此,在我的产品表中有一列
查看\u计数
。我正在尝试用事件侦听器实现它

这是我的活动代码:

productwasview.php

我使用事件侦听器的控制器:

public function singleProduct(Request $request)
{
    $name = $request->name; 
    $product = DB::table('products')                    
            ->where('name' , '=', $name)    
            ->where('status','=',1)
            ->first();  
    Event::fire(new ProductWasViewed($product));

}
我得到的错误是:

类型错误:参数1传递给 App\Events\ProductWasViewed::\uu construct()必须是的实例 App\Modules\Product\Models\Product,给定的stdClass实例


我如何解决这个问题?请提供帮助。

查询生成器请求返回
stdClass
对象。您需要在此处使用雄辩来获取
产品
对象:

$product = Product::where('name', $name)->where('status', 1)->first(); 
'App\Events\ProductWasViewed' => [
            'App\Listeners\IncrementProductViewCount',
        ],
public function singleProduct(Request $request)
{
    $name = $request->name; 
    $product = DB::table('products')                    
            ->where('name' , '=', $name)    
            ->where('status','=',1)
            ->first();  
    Event::fire(new ProductWasViewed($product));

}
$product = Product::where('name', $name)->where('status', 1)->first();