File: D:/HostingSpaces/SBogers10/bomacon.komma.pro/app/Site/SiteController.php
<?php declare(strict_types=1);
namespace App\Site;
use App\Pages\Kms\PageController;
use App\Posts\Kms\PostController;
use App\Products\Product\ProductController;
use App\Products\ProductComposite\ProductCompositeController;
use App\Products\ProductGroup\ProductGroupsController;
use App\Routes\RouteService;
use App\Vat\VatController;
use Illuminate\Database\Eloquent\Model;
use Komma\KMS\Core\Tree\NestedSets\Nodes\AbstractTranslatableTreeModel;
use Komma\KMS\Sites\Kms\SiteController as KmsSiteController;
class SiteController extends KmsSiteController
{
/** @var RouteService */
private $routeService;
public function __construct()
{
parent::__construct();
$this->routeService = app(RouteService::class);
}
/**
* This method is called when a item will be deleted
*
* @param Model $siteModel
* @return mixed
* @throws \Exception
*/
public function destroy(Model $siteModel)
{
/** @var Site $siteModel */
$this->authorize('destroy', $siteModel);
$siteModel->load(['pages', 'posts', 'products', 'product_groups', 'product_composites', 'rates']);
$siteModel->pages->each(function(AbstractTranslatableTreeModel $model) use($siteModel) {
if(!$model->exists) return;
$this->routeService->destroyForModel($model);
parent::destroy($model);
});
$siteModel->posts->each(function(Model $model) use($siteModel) {
parent::destroy($model);
});
$siteModel->products->each(function(Model $model) use($siteModel) {
parent::destroy($model);
});
$siteModel->product_groups->each(function(Model $model) use($siteModel) {
parent::destroy($model);
});
$siteModel->product_composites->each(function(Model $model) use($siteModel) {
parent::destroy($model);
});
$siteModel->rates->each(function(Model $model) use($siteModel) {
parent::destroy($model);
});
return parent::destroy($siteModel);
}
}