我有一个carriages
表,其中包含以下架构:
foreign: subsidiary_id
string: type
string: postal_code
和subsidiaries
表,具有以下架构:
string: name
string: internal_reference
decimal: expedition_rate
现在,我即将在 SubsidiariesController 中调整我的商店功能,以便它自动为该新子公司创建2个车厢。
我知道,在创建子公司之后,我可以非常轻松地进行个别创建步骤,但我想知道如何使用关系方式?
我所知道的是,在我的Subsidiary.php
模型中,我可以创建两个函数,如下所示:
public function carriageExport()
{
return $this->hasOne('Carriage');
}
public function carriageImport()
{
return $this->hasOne('Carriage');
}
其中carriageExport
为carriages.type = 'export'
,carriageImport
为carriages.type = 'import'
所以,
答案 0 :(得分:3)
在这种情况下,范围是可行的方法:
class Subsidiary extends Eloquent {
public function carriage()
{
return $this->hasOne('Carriage');
}
}
class Carriage extends Eloquent {
public function scopeImport($query)
{
return $query->whereType('import');
}
public function scopeExport($query)
{
return $query->whereType('export');
}
}
然后你可以:
echo Subsidiary::find(1)->carriage()->import()->first()->postal_code;