【发布时间】:2019-01-24 05:41:19
【问题描述】:
Eloquent 对象设置为 Json 时,无法获取部分数据。
- 我使用命令
artisan make:Auth,并自定义用户表。
具体来说,我认为我不需要删除一次电子邮件列,
但因为有必要,我再次添加。
这些操作使用迁移文件。
- 我拿到users表的所有数据,用Json返回。
但是邮件没有输出。
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;
为什么没有输出邮件?
(我靠谷歌翻译)
补充说明
感谢大家的评论。
用dd()比较json的输出,除了email,没有输出password和remember_token。
或许邮件是私有属性,私有属性是不输出JSON的机制?
那样的话,怎么改成public呢?
用户模型如下所示
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',
];
~~~
}
【问题讨论】:
-
如果用户对象包含电子邮件,请先尝试 dd($user)
-
我不知道dd(),所以前阵子试了一下。 ``` $user = User::all(); dd($用户[0]); ``` 有电子邮件数据。
-
在遍历你的对象之前执行 print_r
-
你能显示
User模型吗? -
在您的视图中尝试 print_r($user)。它可能会返回电子邮件,但您可能会尝试以不同的方式访问