| @@ 382-395 (lines=14) @@ | ||
| 379 | * @param Model $model The model to remove from the collection. |
|
| 380 | * @return self |
|
| 381 | */ |
|
| 382 | public function remove($key, Model $model) |
|
| 383 | { |
|
| 384 | if (false === $this->isHasMany($key)) { |
|
| 385 | return $this; |
|
| 386 | } |
|
| 387 | if (true === $this->isInverse($key)) { |
|
| 388 | throw ModelException::cannotModifyInverse($this, $key); |
|
| 389 | } |
|
| 390 | $this->touch(); |
|
| 391 | $collection = $this->hasManyRelationships->get($key); |
|
| 392 | $collection->remove($model); |
|
| 393 | $this->doDirtyCheck(); |
|
| 394 | return $this; |
|
| 395 | } |
|
| 396 | ||
| 397 | /** |
|
| 398 | * {@inheritdoc} |
|
| @@ 507-519 (lines=13) @@ | ||
| 504 | * @param Model|null $model The model to relate. |
|
| 505 | * @return self |
|
| 506 | */ |
|
| 507 | protected function setHasOne($key, Model $model = null) |
|
| 508 | { |
|
| 509 | if (true === $this->isInverse($key)) { |
|
| 510 | throw ModelException::cannotModifyInverse($this, $key); |
|
| 511 | } |
|
| 512 | if (null !== $model) { |
|
| 513 | $this->validateRelSet($key, $model->getType()); |
|
| 514 | } |
|
| 515 | $this->touch(); |
|
| 516 | $this->hasOneRelationships->set($key, $model); |
|
| 517 | $this->doDirtyCheck(); |
|
| 518 | return $this; |
|
| 519 | } |
|
| 520 | ||
| 521 | /** |
|
| 522 | * Sets a relationship value. |
|