akaunting/app/Traits/Relationships.php
2019-11-16 10:21:14 +03:00

51 lines
1.1 KiB
PHP

<?php
namespace App\Traits;
use Illuminate\Database\Eloquent\Collection;
trait Relationships
{
public function countRelationships($model, $relationships)
{
$counter = [];
foreach ($relationships as $relationship => $text) {
if (!$c = $model->$relationship()->count()) {
continue;
}
$counter[] = $c . ' ' . strtolower(trans_choice('general.' . $text, ($c > 1) ? 2 : 1));
}
return $counter;
}
/**
* Mass delete relationships with events being fired.
*
* @param $model
* @param $relationships
*
* @return void
*/
public function deleteRelationships($model, $relationships)
{
foreach ((array) $relationships as $relationship) {
if (empty($model->$relationship)) {
continue;
}
$items = $model->$relationship->all();
if ($items instanceof Collection) {
$items = $items->all();
}
foreach ((array) $items as $item) {
$item->delete();
}
}
}
}