[英]Joins in eloquent orm Php laravel
我有一个表单,用户必须从一个表中选择最后一个表格,即
buisnessarea->katogorie->name->genauer->geometrie->ergebnisse
我有一个像这样的数据库。
buisnessarea
**buisnessarea_katogorie(pivot table for buisnessarea and katogorie )**
katogorie
**katogorie_name(pivot table for katogorie and name )**
name
**genauer_name(pivot table for name and genauer)**
genauer
**genauer_geometrie(pivot table for genauer and geometrie )**
geometrie
ergebnisse(foreign keys for name and geometrie)
现在我想加入所有这些表。这个目的就是。我希望得到几何学方面的buisnessarea。 例如,如果我得到了几何id为10.所以我想获得导致几何id为10的buisnessrea。
楷模
Buisnessarea
public function katogorie()
{
return $this->belongsToMany('App\Models\Katogorie')->withTimestamps();
}
Katogorie
public function buisnessarea()
{
return $this->belongsToMany('App\Models\Buisnessarea')->withTimestamps();
}
public function name()
{
return $this->belongsToMany('App\Models\Name');
}
名称
public function katogorie()
{
return $this->belongsToMany('App\Models\Katogorie');
}
public function genauer()
{
return $this->belongsToMany('App\Models\Genauer');
}
public function ergebnisse()
{
return $this->hasMany('App\Models\Ergebnisse');
}
Genauer
public function name()
{
return $this->belongsToMany('App\Models\Name');
}
public function geometrie()
{
return $this->belongsToMany('App\Models\Geometrie');
}
几何学
public function genauer()
{
return $this->belongsToMany('App\Models\Genauer');
}
public function ergebnisse()
{
return $this->hasMany('App\Models\Ergebnisse');
}
public function stufen()
{
return $this->hasMany('App\Models\Stufen');
}
Ergebnisse
public function name()
{
return $this->belongsTo('App\Models\Name');
}
public function geometrie()
{
return $this->belongsTo('App\Models\Geometrie');
}
public function katogorie()
{
return $this->hasManyThrough('Katogorie','Name',)
}
假设您正在使用Laravel 5,您可以按照以下方式执行操作:
$geometrie = Geometrie::with("genauer.name.katogorie.buisnessarea")->find($id);
$buisnessareaOfGeometrie = data_get($geometrie, "genauer.name.katogorie.buisnessarea");
有关详细信息,请查看https://laravel.com/docs/5.3/eloquent-relationships#eager-loading 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.