2017-08-14 69 views
0

我有简单的Download按钮,这是看起来像这样跟踪点击下载按钮并保存在数据库

<a download="{{ $thumb }}" href="{{ $thumb }}" class="btn btn-success">Download Image</a> 

它出现的页面上,当图像被发现。该按钮工作正常,正在下载图像。

该页面有简单的输入字段,用户可以搜索图像,如果找到图像,它会显示在页面上,并带有按钮下载。

我已经做了一个功能,它保存每个string这是搜索,现在我想知道如果我可以保存也如果按钮Download被点击,例如,图像被下载。

有人可以给我看一个例子吗?我在这里使用laravel 5.4。所以也许我需要传递给控制器​​点击事件?

电流控制器功能

public function getImage(Request $request) 
{ 
    $url = get_curl_content_tx('http://example.com/api?url='.$request->input('url')); 
    $items = json_decode($url, true); 
    $thumb = $items['thumbnail_url']; 

    $db_save = new Image(); 

    $ip = $request->ip(); 
    $ip = DB::connection()->getPdo()->quote($ip); 

    $db_save->url = $request->input('url'); 
    $db_save->ip = DB::raw("inet_aton($ip)"); 
    $db_save->save(); 
    return view('getImage',compact('thumb')); 
} 
+0

我相信你需要用js(触发“click”事件)和一个Ajax请求(发送图像的名称服务器的脚本,将数据添加到您的DB)。 –

+0

你的意思是包装的形式可能的按钮,并在我的控制器创建功能在点击数据库中保存+1? – Ivan

+0

当然。或者让'href'转到记录内容的路径,然后重定向到文件。 – ceejayoz

回答

1

是。确保href将转到一条路线,您可以跟踪这些记录,并且如果计数器在那里,您可以传递特定图像以更新Image模型本身的记录模型?事情是这样的:

public function TrackDownload(Image $image){ 
    $imageRecord = Record::where('image_id', '=', $image->id); 

    $imageRecord->update([ 
     'download_counter' => $imageRecord->download_counter + 1; 
    ]); 

    return redirect()->route(); 
} 
+0

但我还不知道该ID。一旦图像被返回,它就会被保存在数据库中,因为它来自api。我用这个函数更新了我的问题 – Ivan