簡體   English   中英

Laravel關系(公司一對多解決)

[英]Laravel relationship (company addresses one-to-many many-to-one)

我有theese模型設置。 CompanyCompanyAddress

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM