Laravel与关系合作

时间:2015-09-01 08:08:37

标签: join laravel-5

我有三个名为:"

的表

用户 Rittenregistratie karakterrit

用户有一个或多个Rittenregistratie和Rittenregistratie 一个卡拉克里特。

这是我的模特:

用户模型:

  public function Rittenregistratie()
    {
        return $this->hasMany('App\Rittenregistratie');
    }

Rittenregistratie模特:

 public function User()
    {
        return $this->belongsTo('App\User');
    }

    public function karakterrit()
    {
        return $this->hasOne('App\karakterrit');
    }

Karakterrit模特:

public function rittenregistratie()
    {
        return $this->belongsTo('App\rittenregistratie');
    }

当我在我的控制器中为rittenregistratie搜索特定的ID时,我这样做:

$rittenregistratie = Rittenregistratie::whereId($id)->firstorFail();

当我想在我看来展示那个rittenregistratie的karakterrit时,我这样做:

$rittenregistratie->karakterrit_id

但我怎样才能确保我没有看到一个数字,但该行的值是多少?

修改

也许我已经解释过有点复杂了。

通常我会使用Joins来实现这一目标。 我有三张桌子用户,Rittenregistratie,Karakterrit

Rittenregistratie看起来像这样

Id (primary key)
kmstand (int)
van (text)
naar(text)
karakterrit_id (foreign key)

Karakterrit看起来像这样

Id (primary key) 
rit (text)

Rittenregistratie.karakterrit_id是karakterrit_id的外键。现在我的问题是如何展示karakterrit.rit?

1 个答案:

答案 0 :(得分:0)

要获取模型而不是值,请像这样调用它。 Eloquent将通过魔法获取你的关系。

$rittenregistratie->karakterrit
//or
$rittenregistratie->karakterrit()->first();

编辑: 由于它返回模型,因此只需执行$rittenregistratie->karakterrit->rit

即可获得其值