微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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) }}">

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐