php – 使用Hashids库在Laravel eloquent集合上散列id

我从一个数据库中抓取一组任务作为一个雄辩的集合,然后我将这个集合发送到我的视图,我在那里做了一个foreach.这里没问题.除此之外,我需要在我的视图中引用任务ID(网址操作等).但我显然不希望这个在源代码中,所以我使用这个library来散列id.但在视图中这样做似乎是错误的.

有没有办法在模型或控制器中散列id?

这是我在控制器中调用集合的方式:

$tasks = Auth::user()->tasks()->orderBy('created_at', 'desc')->get();

这就是我目前在我的视图中对id进行哈希的方法

<a href="{{ route('tasks.markascompleted', hashids::encode($task->id)) }}">

有帮助吗?

解决方法:

您可以使用访问器方法来完成它.首先,在Task模型的顶部附加一个属性

protected $appends = ['hashid'];

然后,在同一模型中,创建一个填充属性的访问器:

public function getHashidAttribute()
{
    return hashids::encode($this->attributes['id']);
}

完成后,只需在视图中调用附加属性

<a href="{{ route('tasks.markascompleted', $task->hashid) }}">

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...