我有三张桌子:
用户
ROLE_USER
角色
现在我想获得一个user.id,users.name的用户列表, roles.id。那是我的代码:
$query = User::with(['roles'=>function($q){
$q->lists('role_id');
}])->get(['id','name']);
像那样的反应
{
"id": "1",
"name": "aaaa",
"roles": []
},
{
"id": "2",
"name": "bbbb",
"roles": []
},
当我没有通过数组获取方法时,响应如下:
{
"id": 1,
"name": "aaaa",
"password": "xxxxxxx",
"created_at": "2015-05-07 14:15:00",
"roles": [
{
"role_id": 2,
"pivot": {
"user_id": 1,
"role_id": 2
}
}
]
},
{
"id": 2,
"name": "bbbb",
"password": "xxxxxxx",
"created_at": "2015-05-05 14:15:00",
"roles": [
{
"role_id": 2,
"pivot": {
"user_id": 2,
"role_id": 2
}
}
]
},
但我不想要密码,created_at和pivot字段。如何过滤这些?
答案 0 :(得分:0)
要获得获取外键所需的关系。试试这个
$query = User::with(['roles'=>function($q){
$q->get(['id', 'name', 'slug']);
}])->get(['id','name', 'role_id']);
对于数据透视表,您可以在用户模型中发布角色关系吗?
编辑 将其添加到您的用户模型以隐藏透视属性
protected $hidden = ['pivot'];
您可以向该属性添加更多字段,以便从所有查询中删除它们。