首页 > 解决方案 > 视频点击计数 laravel

问题描述

我正在尝试使用 Laravel 计算我的视频的点击次数。我按照我在 Google 上找到的这个教程进行操作:http: //cameronscott.co/posts/tracking-page-clicks-in-laravel但没有任何效果。我点击了视频,它并没有在数据库中增加。这是我的代码。

路线:

Route::get('video/{id}/click','ClickController@clickvideo');

控制器:

class ClickController extends Controller
{
    public function clickvideo($id){
        $po=User::findorfail($id);
        $po->increment('clicks');
        $po->update();
    }

意见:

<a href="{{url('video/{$proo->id}/click')}}" class="js-click-video" style="border:none; background:none;">
    <video class="video1" id="cb" preload="auto" data-post-id="{$proo->id}"  style=" overflow: hidden; width: 30vh; object-fit: cover; float:left; clear:both;
           height: auto; padding-left:2%;   margin-top:0px; border:2px solid white;  cursor:pointer; "><source  src="{{$proo->intro_video}}#t=13" playsinline alt="Video Unavailable"   id="" ></source>
</a>

JavaScript:

$('.js-click-video').click(function(e){
    e.preventDefault();
    var post=$(this).closest('.video1');
    var postId=post.attr('data-post-id');
    registerPostClick(postid);
});

function registerPostClick(postid){
    $.ajaxSetup({

        headers:{
            'X-CSRF-TOKEN' : $('meta[name="_token"]').attr('content')
        }
    })

    $.ajax({
        type: 'post',
        dataType: 'JSON',
        url: '/video/' + postId + '/click',
        error: function (xhr, ajaxOptions, thrownError) {
            console.log(xhr.status);
            console.log(JSON.stringify(xhr.responseText));
        }
    });
}

标签: laravel

解决方案


您在此处的变量名中缺少小胡子:

data-post-id="{$proo->id}"

应该

data-post-id="{{$proo->id}}"

这也应该是:

*{{url('video/{$proo->id}/click')}}*
{{url('video/' . $proo->id .'/click')}}

此外,这不是必需的

 $po->update();

推荐阅读