How i can use like search query in Aes_encryption data in laravel .my data in tables is in AES Encryption form . i try this code but its not work well. please help me. Thanks in Advance.
public static function search($type, $value, $limit = 12){
$key = self::encryption_key;
if($type == "name"){
$valuess = DB::raw("AES_ENCRYPT('$value',$key)");
$values = Crypt::encrypt($valuess);
}elseif($type == "phone"){
$valuess = DB::raw("AES_ENCRYPT('$value',$key)");
$values = Crypt::encrypt($valuess);
}elseif($type == "email"){
$valuess = DB::raw("AES_ENCRYPT('$value',$key)");
$values = Crypt::encrypt($valuess);
}elseif($type == "tag"){
$values = $value;
}else{
$valuess = DB::raw("AES_ENCRYPT('$value',$key)");
$values = Crypt::encrypt($valuess);
}
$types = Customer::getTranslatedType($type);
$user_id = Auth::user()->id;
$data = DB::table("user_customers")->select(DB::raw("customers.status, customers.id, user_customers.tag as tag, SUM(CASE WHEN uploads.views=0 AND folders.isPrivate = 0 THEN 1 ELSE 0 END) as unread,
SUM(CASE WHEN uploads.status=1 AND folders.isPrivate = 0 THEN 1 ELSE 0 END) as unprocessed, companies.id as company_id ," .(new static)->columnsToAESDecryptHelper(array("companies.name" => "name", "companies.email" => "email", "companies.phone" => "phone", "companies.address" => "address"))))
->join("customers", "customers.id", "user_customers.customer_id")
->join("users", "user_customers.user_id", "users.id")
->leftjoin("folders", "users.id", "folders.user_id")
->leftjoin("uploads", "folders.id" , DB::raw("uploads.folder_id AND customers.id = uploads.customer_id"))
->leftjoin("companies", "user_customers.company_id", "companies.id")
->where("user_customers.user_id", $user_id)
->where($types, 'LIKE',"%{$values}%")
// ->groupBy(DB::raw("customers.id , customers.user_id"))
->groupBy(DB::raw("companies.id"))
->orderBy('customers.id','desc')
->paginate($limit);
// dd($data);
return $data;
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire