как использовать отношения, чтобы проверить, существует ли значение в массиве в laravel - PullRequest
1 голос
/ 17 мая 2019

Я пытаюсь использовать отношения laravel для получения значения.

Я объявил некоторые константы в модели Skill и пытаюсь вернуть, существует ли идентификатор в массиве этих констант или нет. вот что у меня есть

class Skill extends Model {
   CONST LEVEL_BEGINNER              =  1;
   CONST LEVEL_INTERMEDIATE          =  2;
   CONST LEVEL_EXPERIENCED           =  3;
   CONST LEVEL_EXPERT                =  4;
   public static function getLevels () {

        return [
            self::LEVEL_BEGINNER         => "Beginner",
            self::LEVEL_INTERMEDIATE     => "Intermediate",
            self::LEVEL_EXPERIENCED      => "Experienced",
            self::LEVEL_EXPERT           => "Expert",
        ];

    }
    public function experience_level () {

        return self::getLevels()[$this->experience_level_id] ?? "";

    }
}

Но, когда я делаю это в контроллере

$ скилл> experience_level

это говорит

App \ Skill :: experience_level должен возвращать экземпляр отношения.

Как я могу использовать это или есть другой подход для достижения этого?

1 Ответ

2 голосов
/ 17 мая 2019

Вы используете обычную ООП-функциональность здесь, не имеющую ничего общего с отношениями Laravel.Поэтому, чтобы вызвать вашу experience_level() функцию, просто используйте:

$skill->experience_level()

Надеюсь, это поможет

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