"访问未声明的静态属性:App \ FieldCategory :: $ fieldCategories"

时间:2017-11-21 07:19:12

标签: php laravel laravel-eloquent

我试图获取在FieldCategory模型中定义的静态变量的值。但是如果我尝试从crontroller访问常量,我会收到错误。 这是代码

$fieldCategories = FieldCategory::find(1)->first()->constants;
$test=FieldCategory::$fieldCategories;

$fieldCategories包含一个值,该值是在model中声明的常量的名称。但是它给出了以下错误

  

"访问未声明的静态属性:App\FieldCategory::$fieldCategories"

2 个答案:

答案 0 :(得分:0)

如果您想使用 $fieldCategories 的值作为常量名称,则需要使用

echo constant("FieldCategory::$fieldCategories");

使用FieldCategory::$fieldCategories PHP会认为您正在尝试访问静态属性,这显然不是常量。

示例:

class Foo {
    const BAR = 42;
}

$prop = 'BAR';
echo constant("Foo::$prop");

请参阅http://php.net/manual/en/function.constant.php

答案 1 :(得分:0)

请您检查一下这个解决方案,我希望它对您有用。

$data=constant("App\FieldCategory::{$fieldCategories}");