我有以下数据模型:
layout_weight
我想要恢复所有活动客户端及其所属扇区的名称,如果我这样做的话
class Cliente extends Model
{
public function sector()
{
return $this->belongsTo(Sector::class,'sectoresId');
}
}
class Sector extends Model
{
public function sectorLanguage()
{
return $this->hasMany(SectorLanguage::class,'sectoresId');
}
public function cliente()
{
return $this->hasMany(ClienteLanguage::class,'sectoresId');
}
}
class SectorLanguage extends Model
{
public function sector()
{
return $this->belongsTo(Sector::class,'sectoresId');
}
public function idioma()
{
return $this->belongsTo(Idioma::class,'idiomasId');
}
}
当我运行$ client时,我无法输入属性
$cliente = Cliente::where('active','1');
为什么呢?当我通过id
找到它时,它只适用于我foreach($cliente as $cli) {
$cli->sector->sectorLanguage->nombre;
}
如何在不使用Query Builder执行SQL的情况下获取所需内容。
非常感谢,问候。
答案 0 :(得分:1)
根据您定义的关系,Sector
有很多sectorLanguage
,这意味着您收到了collection
,因此您应该处理这样的对象:
$cliente->where('active', 1)
->first()
->sector
->sectorLanguage
->first()
->nombre;
Cliente::where('active', 1)
和sectorLanguage
为您提供了收藏,因此您 首先应该从$cliente
&sectorLanguage
然后应用 理想的关系
希望它能够奏效!