我有几个模型-我们称它们为Item和Ean。在Item模型中,与Ean模型有几个hasMany关系。
public function eans() {
return $this->hasMany(Ean::class)->orderBy('type', 'asc')->orderBy('id', 'asc');
}
public function eans_type_1() {
return $this->hasMany(Ean::class)->where('type', 1)->orderBy('id', 'asc');
}
public function eans_type_2() {
return $this->hasMany(Ean::class)->where('type', 2)->orderBy('id', 'asc');
}
当我要将新的Ean模型关联到Item时,我正在使用create():
$item->eans()->create(['ean' => $value, 'type' => 1]);
or
$item->eans()->create(['ean' => $value, 'type' => 2]);
有没有一种方法可以定义hasMany关系:
$item->eans_type_1()->create(['ean' => $value]);
答案 0 :(得分:0)
并非没有严重的压倒性。通话时
$items->eans()
$items->eans_type_1()
$items->eans_type_2()
您将获得一个Illuminate\Database\Eloquent\Relations\HasMany
实例以及您致电时
$items->eans
$items->eans_type_1
$items->eans_type_2
您将获得一个Illuminate\Database\Eloquent\Collection
实例。
只需传递值即可。