2015-09-01 170 views
0

工作我已经三个表叫:”Laravel有关系

用户 Rittenregistratie karakterrit

用户具有一个或多个Rittenregistratie和Rittenregistratie具有 一个Karakterrit

这是我的型号:

用户型号:

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?

+0

作为一种语言是英语,什么是“Rittenregistratie”和“Karakterrit”? –

+0

是的,对不起,这是荷兰人。 Rittenregistratie是你驾驶汽车的日期,距离,距离。例如,如果你是私人或商业用途,卡拉特里特就是如此。 – Jamie

+0

Gotcha。谢谢:) –

回答

0

要获得模型而不是价值,请像这样称呼它。雄辩会通过一种神奇的方法为你获得关系。

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

编辑: 因为它返回的模式,得到其值,你根本就$rittenregistratie->karakterrit->rit

+0

感谢您的回复。但是我想我已经解释了一些复杂的请看我的编辑。 – Jamie

+0

@jamie增加了一个例子。 – Kaspars

+0

谢谢,但然后我收到错误:SQLSTATE [42S22]:未找到列:1054未知列'where子句'中的'karakterrit.rittenregistratie_id'(SQL:select * from'karakterrit'其中'karakterrit'.'rittenregistratie_id' = 3和'karakterrit'.'rittenregistratie_id'不为null限制1)(查看:D:\ wamp \ www \ resources \ views \ ritten \ rit.blade.php) – Jamie