Php 如何使用关系检查laravel中的数组中是否存在值
我尝试使用laravel关系来获取值 我在模型Php 如何使用关系检查laravel中的数组中是否存在值,php,laravel,laravel-5,eloquent,Php,Laravel,Laravel 5,Eloquent,我尝试使用laravel关系来获取值 我在模型Skill中声明了一些常量,并试图返回这些常量数组中是否存在id。这是我的 class Skill extends Model { CONST LEVEL_BEGINNER = 1; CONST LEVEL_INTERMEDIATE = 2; CONST LEVEL_EXPERIENCED = 3; CONST LEVEL_EXPERT
Skill
中声明了一些常量,并试图返回这些常量数组中是否存在id。这是我的
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] ?? "";
}
}
但是,当我在控制器中执行此操作时
$skill->experience\u级别
上面说
App\Skill::experience\u level必须返回一个关系实例
我如何使用此功能,或者是否有其他方法来实现此功能?您在这里使用的是正常的OOP功能,与Laravel关系无关。因此,要调用您的
experience\u level()
函数,只需使用:
$skill->experience_level()
我希望它能有所帮助我知道我正在使用普通的OOP,我知道我可以这样使用它,但我正在尝试看看是否有一种方法可以将它用作关系!在接受之前,我会等待答案。