我使用以下代码为给定字符串生成加密字符串。
[]
使用此代码,我生成了模型对象id的加密id,并替换了原始id。
(x:[])
对于使用加密ID替换原始ID后,(_:xs)
的给定实例class MY_class{
public static function cryption($string){
$output = base64_encode(openssl_encrypt($string, $cipher_method, $key, 0, $iv));
$output = $iv . $output;
return $output;
}
}
,我会得到以下结果。
$Model_object = Model_class::find(1);
$Model_object->id = MY_class::cryption($Model_object->id);
echo json_encode($Model_object);
但print_r()
仅输出加密id的第一个十进制数字。
$Model_object
如果有人能解释为什么会这样,以及如何解决这个问题,我真的很感激。
P.S。我已经用Google搜索了这个问题并在Stack Overflow中进行了搜索。所以,请不要在评论中提及它。
答案 0 :(得分:0)
正如@LSerni所说,我隐含地将加密的id( string )分配给 integer 属性$Model_object->id
。
所以我创建了一个新的动态属性$Model_object->encrypted_id
,并为其分配了加密的id,并在另一侧调用了该属性。它就像一个魅力。
非常感谢@LSerni对这个问题的见解。