我正在雄辩地进行一段关系,但没有得到想要的Json。我正在使用这样的东西:
return User::with('permissao.telaSistema')->find(26);
正在产生以下json:
{
"id" : 1000,
"total_operadores": null,
"permissao": [
{
"tela_sistema": [
{
"id": 7,
"nome_tela": "generic mkt"
}
]
},
{
"tela_sistema": [
{
"id": 6,
"nome_tela": "generic mkt2"
}
]
}
]
}
生成这样的东西是否更明智:
{
"id": 1000,
"total_operadores": null,
"permissao": [
{
"tela_sistema": [
{
"id": 7,
"nome_tela": "generic mkt"
},
{
"id": 6,
"nome_tela": "generic mkt 2"
}
]
}
]
}
我想知道不是我对模型的关系声明有问题。这是我的模特。
class User {
public function permissao(){
return $this->hasMany('App\Permissao', 'operador_id', 'id');
}
}
Permissao类
Class Permissao
{
public function user() {
return $this->belongsToOne('App\User', 'id', 'operador_id');
}
public function telaSistema() {
return $this->hasOne('App\TelaSistema', 'id', 'tela_id');
}
}
Telas气管病
TelaSistema class
{
public function permissao()
{
return $this->belongsToMany('App\Permissao', 'id', 'tela_id');
}
}
这是表格的结构。
User Permissao Tela_sistema
id (one) -> (many) operador_id
tela_id (many) -> (one) id
答案 0 :(得分:0)
我做到了!我使用了“通过很多”。
public function telaSistema()
{
return $this->hasManyThrough('App\TelaSistema', 'App\Permissao', 'operador_id', 'id', 'id' ,'tela_id');
}
我不知道我是否正确地提供了参数,但显然可以。
{
"id" : 1000,
"total_operadores": null,
"tela_sistema": [
{
"id": 7,
"nome_tela": "generic mkt",
"operador_id": 26
},
{
"id": 6,
"nome_tela": "generic mkt2",
"operador_id": 26
}
]
}