亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Laravel 加密和顯示

Laravel 加密和顯示

PHP
慕尼黑5688855 2021-06-16 13:02:57
我有一個名為 Secret 的對象,我希望在其中對“secret_title”和“secret_text”這兩個字段進行加密。當用戶登錄時,我想在表格中顯示他們的秘密列表。我在 Secret 類中使用 setter 和 getter 來加密和解密信息,但是當我在視圖中打印 secret_title 和 secret_text 時,它仍然是加密的。這是我的對象:<?phpnamespace App;use Illuminate\Database\Eloquent\Model;use Illuminate\Support\Facades\Crypt;use Illuminate\Contracts\Encryption;class Secret extends Model{    protected $fillable = [        'user_id',        'secret_title',        'secret_text',  ];  public function getSecretTitleAttribute()  {    return Crypt::decrypt($this->attributes['secret_title']);  }  public function getSecretTextAttribute()  {    return Crypt::decrypt($this->attributes['secret_text']);  }  public function setSecretTitleAttribute($value)  {    $this->attributes['secret_title'] = Crypt::encrypt($value);  }  public function setSecretTextAttribute($value)  {    $this->attributes['secret_text'] = Crypt::encrypt($value);  }}在我使用的控制器中:public function showUserSecrets()    {        $user_id = Auth::id();        $secrets = DB::table('secrets')->where('user_id', $user_id)->get();        return view('secret.show', compact('secrets'));    }在我看來,我有:    @foreach ($secrets as $secret)     <tr>         <td>{{ $secret->id }}</td>         <td>{{ $secret->secret_title }}</td>         <td>{{ $secret->created_at }}</td>         <td><a href="{{ route('secret.show', $secret->id) }}" class="button">View</a></td>    </tr>   @endforeach
查看完整描述

1 回答

?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

結果不會加載到您的Secret模型中,因此永遠不會使用解密屬性。


代替:


$secrets = DB::table('secrets')->where('user_id', $user_id)->get();

和:


use App\Secret;


// ...


$secrets = Secret::where('user_id', $user_id)->get();


查看完整回答
反對 回復 2021-06-25
  • 1 回答
  • 0 關注
  • 184 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號