0
嘿,我有三个表这样GROUPBY的关系laravel
--table plan--
id
name
....
----table letter---
id
plan_id
....
---table person----
id
plan_id
name
.....
型号我有:
---Model plan---
class plan extends Model
{
protected $table = 'plan';
public function letter(){
return $this->hasOne('App\letter');
}
public function person(){
return $this->hasMany('App\person');
}
}
--Model person--
class person extends Model
{
public function plan(){
return $this->belongsTo('App\plan');
}
}
--Model letter--
class letter extends Model
{
public function plan(){
return $this->belongsTo('App\plan');
}
}
而且在控制我写这样的代码:
$letter = letter::find($id) // $id from url parameter and it's work
return view('letter',['letter' => $letter]);
罗在查看我想从信件模型acces人名称作为截然不同的,所以我写这样的代码
{{ @foreach ($letter->plan()->person()->groupBy('name')->get) as $person }}
,但它返回的错误是这样的: 调用未定义的方法照亮\数据库\查询\生成器::人()
哪里是我的错(S)?
此外,它是更好地渴望装载计划和人'$ letter = letter :: with('plan.person') - > find($ id)'+你的意思是'return view('letter',['persons'=> $ persons]);' – Maraboc
好了这个问题是固定的,但在那里显示另一个公关oblem:语法错误或访问冲突:1055'mydb.person.id'不在GROUP BY –
nah现在一切正常,只是配置错误,谢谢 –