Получить значение объекта, используя ключ, принадлежащий через - PullRequest
1 голос
/ 03 апреля 2019

Я создаю веб-сайт, который отображает спецификации и характеристики сервера:

Основные объекты: Категория: Выражение класса серверов («общие серверы», «облачные серверы») Категория содержит пакеты (планы), и все пакеты в классе имеют одинаковые функции, но разные по значениям. Категория также содержит несколько сервисов и несколько часто задаваемых вопросов.

Пакет: Содержащие пакеты (планы), такие как («Бизнес-план», «Безлимитный план», «Рабочий план») Все пакеты имеют одинаковую форму, но различаются по значениям для общих функций.

Администратор может создать шаблон класса и добавить функции, доступные в этой категории, а затем добавить пакеты в этой категории.

Я создал этот дизайн базы данных (ссылка на изображение: https://i.imgur.com/aUgR6mb.png)

Особенности клавиш Модель

class HostingFeatureKey extends Model
{
    protected $table = 'hosting_feature_keys';

    public function feature_values()
    {
        return $this->hasManyThrough(
            'App\HostingPackageHasFeatureValue',
            'App\HostingCategoryHasFeatureKey',
            'feature_key_id',
            'category_has_feature_key_id',
            'id',
            'id'
        );
    }

    public function feature_value_of(HostingPackage $package)
    {
        return $this->feature_values()->get()->where('package_id', $package->id)->first();
    }
}
  • Функция «feature_value_of» работает правильно

Комплектация

class HostingPackage extends Model
{
    protected $table = 'hosting_packages';


    public function category()
    {
        return $this->belongsTo('App\HostingCategory', 'category_id');
    }

    public function icon()
    {
        return $this->belongsTo('App\HostingIcon', 'icon_id');
    }

    public function feature_values()
    {
        return $this->hasMany('App\HostingPackageHasFeatureValue', 'package_id', 'id');
    }

    public function feature_value_of(HostingFeatureKey $feature_key)
    {
        //
    }
}

Как реализовать функцию "feature_value_of" в модели HostingPackage, чтобы вернуть значение ключа "feature_key" для этого объекта как функцию "feature_value_of" в модели HostingFeatureKey.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...