我有供应商,州和城市的表格。创建供应商时,您可以选择州和几个城市。
最初我正在对城市进行序列化,但搜索变得很困难,所以我想我会把它分解出去。
到目前为止,我的想法是在我的供应商表上
vendor_location_id
在我的供应商位置表中我将
vendor_id state_id city_id
现在,当我创建供应商时,我需要一种方法来填充vendor_location_id,vendor_id,state_id和city_id。关于如何做到这一点的任何想法?
答案 0 :(得分:1)
如果供应商位置表中有vendor_id,则供应商表中不需要vendor_location_id。
继承人我会怎么做:
Vendors
• id
• name
Cities
• id
• name
• state_id
States
• id
• name
VendorCity
• id
• vendor_id
• city_id
那么关系:
class Vendor extends \Eloquent {
public function cities()
{
return $this->belongsToMany('City');
}
}
class City extends \Eloquent {
public function state()
{
return $this->belongsTo('State');
}
public function vendors()
{
return $this->belongsToMany('Vendor');
}
}
关于附加它们 -
$city = City::find(1);
$vendor = Vendor::create(['name' => 'Vendor Name']);
$vendor->cities()->attach($city->id);