Laravel 建立这种关系的最佳方式是什么?

Laravel 建立这种关系的最佳方式是什么?,laravel,laravel-4,Laravel,Laravel 4,我有一张供供应商、州和城市使用的桌子。创建供应商时,可以选择一个州和几个城市 起初我是在连载这些城市,但搜索起来很困难,所以我想我会把它打破 到目前为止,我所想的都在我的供应商表上 供应商\位置\标识 在我的供应商位置表中 供应商标识州标识城市标识 现在,当我创建一个供应商时,我需要一种方法来填充供应商位置id、供应商id、州id和城市id。关于如何最好地执行此操作,您有什么想法吗?如果供应商位置表中有供应商id,则供应商表中不需要供应商位置id 我会这样做: Vendors • id • na

我有一张供供应商、州和城市使用的桌子。创建供应商时,可以选择一个州和几个城市

起初我是在连载这些城市,但搜索起来很困难,所以我想我会把它打破

到目前为止,我所想的都在我的供应商表上

供应商\位置\标识

在我的供应商位置表中

供应商标识州标识城市标识


现在,当我创建一个供应商时,我需要一种方法来填充供应商位置id、供应商id、州id和城市id。关于如何最好地执行此操作,您有什么想法吗?

如果供应商位置表中有供应商id,则供应商表中不需要供应商位置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);