laravel 访问器 和 belongsToMany 的问题

大佬们~
因为我们返回前台数据 id 需要加密 所有就用访问器做了改变

public function getIdAttribute($value){

    return IdGenerator::convertToBase64($value);
}

但是这个使用多对多这样就查不出来数据了

public function image()
    {
        return $this->belongsToMany('App\Models\Image','user_dynamic_image','dynamic_id','image_id');
}

请问下有什么方法解决吗?

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 2

虽然没测过,但是看起来确实有点问题,查询第一次后拿到的id就是加密后的,再去查关联数据就有问题了。 我觉得 1.可以添加个加密id字段,生成记录的时候就同时记录好加密id,就不用访问器了,讲道理也不占什么空间,查询后也不用再计算机密值了 2.如果有返回的数据格式统一的话,也许后置中间件是个办法,在返回前对数据中的id做加密处理。

4年前 评论
W_957 (楼主) 4年前
4年前 评论
W_957 (楼主) 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!