[英]Laravel relationship (company addresses one-to-many many-to-one)
我有theese模型設置。 Company
及CompanyAddress
Company
可以有很多地址,所以我在Company
模型中有這個地址。
public function addresses()
{
return $this->hasMany('App\CompanyAddress', 'company_id', 'id');
}
CompanyAddress
應該屬於一個Company
所以我在CompanyAddress
模型中擁有它。
public function company()
{
return $this->belongsTo('App\Company', 'company_id', 'id');
}
我以前在關系方面苦苦掙扎,但是在嘗試將地址附加到給定公司時遇到錯誤。
$company->addresses()->attach($address);
我也嘗試使用..associate()
錯誤: Call to undefined method Illuminate\\Database\\Eloquent\\Relations\\HasMany::attach()
我在這里做錯了什么? 我搞砸了關系嗎?
確實應該是$company->addresses()->associate($address);
下面有幾種方法可以做到這一點:
$company = Company::where(['name'=>'eastman'])->firstOrFail();
$address = new CompanyAddress;
$address->company()->associate($company);
$address->save();
或者你可以嘗試這樣的事情
$company = Company::where(['name'=>'eastman'])->firstOrFail();
$address = new CompanyAddress;
$company->addresses()->save($address);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.