<?php
namespace App\Models;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
protected $hidden = [
'password',
'remember_token',
'activated',
'token',
];
}
上面是我希望隐藏显示的属性列表,但是当我使用
时 $users = User::leftJoin('countries','users.nationality_id','=','countries.id')
->selectRaw("
users.*,
countries.name as nationality_name
")
->where('users.id','=',$user_id)
->get();
此后当我dd($user);
时,它仍显示隐藏的属性
正如您在上面的屏幕截图中看到的那样,&#39;密码&#39;, &#39; remember_token&#39 ;, &#39;激活&#39 ;, &#39;令牌&#39;仍在显示。
任何想法?
答案 0 :(得分:5)
手册说:
隐藏数组或JSON转换的属性
有时您可能希望限制其中包含的属性 您的模型的数组或JSON格式,例如密码。为此,请添加 隐藏属性定义到您的模型。
所以,如果你试试
get()->toArray();
他们将被隐藏。
测试:
dd(User::find(1)->toArray());
dd(User::find(1));