File: D:/HostingSpaces/slenders/slenders.nl/app/Komma/Categories/Kms/CategoryService.php
<?php
namespace App\Komma\Categories\Kms;
use App\Komma\Kms\Core\Attributes\Attribute;
use App\Komma\Kms\Core\Attributes\Models\SelectOptionInterface;
use App\Komma\Kms\Core\Tree\NestedSets\Nodes\TreeModel;
use App\Komma\Kms\Core\Sections\SectionService;
use App\Komma\Kms\Core\Sections\SectionTabItem;
use App\Komma\Globalization\Languages\Models\Language;
use App\Komma\Categories\Models\Category;
use App\Komma\Routes\Models\Route;
use App\Komma\Sites\HasSitesInterface;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Collection as DatabaseCollection;
use Illuminate\Support\Str;
final class CategoryService extends SectionService
{
protected $sortable = false;
protected $orderByDisplayName = true;
function __construct()
{
$this->forModelName = Category::class;
parent::__construct();
}
public static function getModelsForSelect($skipNone = false) {
$selectOptions = [];
if(!$skipNone) {
$selectOptions[] = (app(SelectOptionInterface::class))
->setContent(__('kms/global.none'))
->setHtmlContent(__('kms/global.none'))
->setValue(null);
}
$models = Category::all();
foreach ($models as $model) {
/** @var SelectOptionInterface $selectOption */
$selectOption = (app(SelectOptionInterface::class))
->setContent($model->translation->name)
->setHtmlContent($model->translation->name)
->setValue($model->id);
$selectOptions[] =$selectOption;
}
return $selectOptions;
}
public static function getModelsByCategoryThroughRelation(int $categoryId, string $relation)
{
return Category::find($categoryId)->{$relation};
}
}