說明:我有一個網站。我只想跟蹤一個可疑的請求,並且只在需要時纔可能對它們進行倉庫管理。我剛開始實現該功能。我擁有所有IP地址記錄,但我不確定如何每次增加訪問次數 - 他們訪問。檢查數據庫中是否已經存在使用Laravel的值
目標:要增加visit_count
屬性,每次用戶訪問一個網站
在我visitors
表,我有一個ip
屬性 我要檢查一個前現有的第一,我執行保存和其他邏輯,但我只是有點卡在這裏。
如何使用Laravel檢查數據庫中是否已存在該值?
任何提示,將非常感謝!
我已經試過
型號:Visitor.php
class Visitor extends Model {
protected $table = 'visitors';
//Validation Rules and Validator Function
public static function validator($input, $id = ''){
$rules = array(
'ip' =>'unique:visitors,ip,'.$id,
);
return Validator::make($input,$rules);
}
}
控制器:Visitor.php
// Check for existing
$validator = Visitor::validator($ip);
if ($validator->fails()) {
$ip = Visitor::where('ip', '=', $ip)->firstOrFail();
$id = $ip['attributes']['id']; //<------ Not sure if this is a proper way
if($ip){
$visitor = Visitor::findOrFail($id);
$visitor->visit_count = $visitor->visit_count + 1 ;
$visitor->save();
}
} else {
$visitor = new Visitor;
$visitor->ip = $ip;
$visitor->visit_count = $visitor->visit_count + 1 ;
$visitor->save();
}
結果
我不斷收到
Argument 1 passed to Illuminate\Validation\Factory::make() must be of the type array, string given
我相信,它從這裏$validator = Visitor::validator($ip);
現在在我的模型上試用它。再次感謝您的幫助。 – ihue
它的作品優雅。令人敬畏的工作! @Bogdan。 – ihue
很酷。樂意效勞。 – Bogdan