我的passport字段在我的judokas
迁移中是string
。我想加密此字段,并只在视图和更新表单字段中解密它,当创建记录时一切正常,该字段被加密。问题是当我通过更改passport的值进行测试时,错误有效负载无效在行return Crypt::decryptString($value);
<?php
namespace App\Models;
use App\Events\FighterDeletedEvent;
use Illuminate\Contracts\Encryption\DecryptException;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Support\Facades\Crypt;
use Illuminate\Database\Eloquent\Model;
class JudokaModel extends Model
{
use HasFactory;
public $timestamps = false;
protected $table = 'jodokas';
protected $primaryKey = 'id';
protected $fillable = [
'passaport',
];
public function setPassaportAttribute($value)
{
$this->attributes['passaport'] = Crypt::encryptString($value);
}
public function getPassaportAttribute($value)
{
return Crypt::decryptString($value); // The payload is invalid.
}
}
如何解决这个问题?
1条答案
按热度按时间uyhoqukh1#
尝试捕获
DecryptException
并在解密失败时返回默认值。