将Eloquent对象设置为Json时,无法获取部分数据。
artisan make:Auth
和自定义的用户表。具体来说,我认为我不需要一次删除电子邮件列,
但是由于有必要,所以我再次添加了它。
这些操作使用迁移文件。
但是不会输出电子邮件。
class UserController extends Controller
{
public function index() {
return User::all();
}
}
即使使用json_encode
也会做同样的事情。
使用时存在
$user = User::all();
$userArray = array();
foreach ($user as $u){
$userArray[] = [
'name' => $u->name,
'email' => $u->email
];
}
return $userArray;
为什么不输出电子邮件?
(我依靠Google翻译)
附加说明
感谢大家发表评论。
将json的输出与dd()进行比较,除了电子邮件之外,未输出密码和Remember_token。
也许电子邮件是私有财产,而私有财产是一种不输出JSON的机制?
在这种情况下,我该如何公开?
用户模型看起来像这样
class User extends Authenticatable
{
use Notifiable;
use SoftDeletes;
protected $table = 'users';
protected $dates = ['deleted_at'];
protected $primaryKey = 'uuid';
protected $keyType = 'string';
public $incrementing = false;
protected $fillable = [
'name', 'email', 'password',
];
protected $hidden = [
'password', 'email','remember_token',
];
~~~
}
答案 0 :(得分:1)
我自己解决了。
我发现此处设置的列不会输出到JSON。
protected $hidden = [
'password', 'email','remember_token',
];
这是一件非常简单的事情。...
答案 1 :(得分:0)
尝试:
return User::select('name', 'email')->get()->toArray();