Laravel-编码在getRouteKey中不起作用-(Hashids\Hashids)

Laravel-编码在getRouteKey中不起作用-(Hashids\Hashids),laravel,routes,obfuscation,hashids,Laravel,Routes,Obfuscation,Hashids,我正在尝试将递增ID散列到URL中。我似乎不能得到正确的编码,我遵循和教程,这没有帮助。我在一个控制器中尝试了我在getRouteKey()中的代码,它似乎在做这项工作,并按预期对ID进行哈希运算 有人知道我做错了什么吗 public function getRouteKey() { $key = $this->getKey(); $hashids = new \Hashids\Hashids('MySecretSalt', 5); return $hashids-

我正在尝试将递增ID散列到URL中。我似乎不能得到正确的编码,我遵循和教程,这没有帮助。我在一个控制器中尝试了我在
getRouteKey()
中的代码,它似乎在做这项工作,并按预期对ID进行哈希运算

有人知道我做错了什么吗

public function getRouteKey()
{
    $key = $this->getKey();
    $hashids = new \Hashids\Hashids('MySecretSalt', 5);
    return $hashids->encode($key);
}
更新 然后我使用绑定/解码,如下所示

    Route::model('property', Property::class);
    Route::bind('property', function ($value, $route) {
        $hashids = new \Hashids\Hashids('MySecretSalt', 5);
        return $hashids->decode(intval($value))[0];
    });
我的路线是,

Route::get(
    '/{property}/vvv/',
    'PropertyController@property_dashboard'
)->name('property.dashboard');

我猜您使用的是javascript前端,而不是刀片,因此您无法访问Laravel route函数。如果这是真的,并且您正在使用类似Ziggy的东西来创建路由,那么您总是可以将hashid传递到Ziggy的route方法中。您可以在模型中创建一个hashid属性,然后返回前端。

这是否有助于您不将hashid转换回常规id,对其进行解码,anywhere@lagbox我想在设置解码之前先完成散列逻辑,我在上面加了一句,但这行不通
返回$hashids->decode(intval($value))[0]
此返回
未定义的偏移量:0
,您认为解码是编码的问题吗?编码有什么问题。。。你自己的话说它正在控制器中正确地散列。。。那么,您的问题的实际问题是什么呢?@lagbox正如我所说,它只在控制器中工作(如下所示),而不是在我放入getRouteKey()函数时<代码>$key=$property->getKey()$hashids=new\hashids\hashids('MySecretSalt',5);返回$hashids->encode($key)