Php 如何在Laravel中创建广告印象系统
我正在创建一个广告印象系统。 我就是这样做的有更好的方法吗?Php 如何在Laravel中创建广告印象系统,php,mysql,laravel,query-builder,Php,Mysql,Laravel,Query Builder,我正在创建一个广告印象系统。 我就是这样做的有更好的方法吗? array:19 [▼ 0 => "24127" 1 => "24126" 2 => "24125" 3 => "24124" 4 => "24123" 5 => "24122" 6 => &
array:19 [▼
0 => "24127"
1 => "24126"
2 => "24125"
3 => "24124"
4 => "24123"
5 => "24122"
6 => "24121"
7 => "24120"
8 => "24119"
9 => "24118"
10 => "122283"
11 => "122282"
12 => "18144"
13 => "22950"
14 => "134154"
15 => "23064"
16 => "14397"
17 => "218105"
18 => "21489"
]
foreach($data as $impress => $impressid){
$impRecord = DB::table("adsimpressions")->where([
['ad_id','=',$impressid->page_id.$impressid->id],
['date','=',date("d-m-Y")]
])->first();
if(isset($impRecord->id) and is_object($impRecord)){
DB::table("adsimpressions")->where("id",$impRecord->id)->increment('impressions');
}else{
DB::table("adsimpressions")->insert([
'ad_id' =>$impressid->page_id.$impressid->id,
'impressions' =>1,
'date' => date("d-m-Y")
]);
}
}
我认为这种方法会使我的页面变慢。。你的建议对我来说很重要我建议你阅读拉威尔收藏
https://laravel.com/docs/8.x/collections#available-methods
1:获取adsimpressions
表的所有记录并存储到in-Laravel Collection Facade中
2:取而代之的是这个查询
DB::table("adsimpressions")->where([
['ad_id','=',$impressid->page_id.$impressid->id],
['date','=',date("d-m-Y")]
])->first();
您可以使用laravel collection where方法将记录提取到您的集合中
https://laravel.com/docs/8.x/collections#method-where
您的数据库连接被最小化,此方法使您的页面速度变高