Helper Class,用于根据数组的值生成唯一键。 我有一个主页搜索表单,用户可以选择不同的选项进入下一页。如果我在会话中保存搜索,则用户无法在新选项卡中打开多个订单。唯一的解决方案是传递URL中的搜索字段。由于url长度有限制。我想生成搜索数据的哈希值并将其传递给url。有没有更好的方法来生成哈希值。
我发现只有简单的解决方案是使用md5生成密钥的woocommerce cart密钥生成。
class HashKey extends Object
{
public $model;
public $hashkey;
public function __construct($model)
{
$attributes = $model->getAttributes();
if ( is_array( $attributes ) && ! empty( $attributes ) ) {
$hashkey = '';
foreach ( $attributes as $key => $value ) {
if ( is_array( $value ) ) $value = http_build_query( $value );
$hashkey .= trim($key) . trim($value);
}
$id_parts[] = $hashkey;
}
$this->hashkey = md5( implode( '_', $id_parts ) );
}
/**
* String magic method
* @return string the DB expression
*/
public function __toString()
{
return $this->hashkey;
}
}