繁体   English   中英

加入雄辩的orm Php laravel

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM