Laravel - 访问受保护数组中的配置

时间:2017-03-22 14:30:00

标签: php laravel

为什么我不能这样做:

protected $attributes = array('name' => config('app.name'));

我收到以下错误:

  

常量表达式包含无效操作

编辑:我应该提一下,当我在Eloquent模型中执行此操作时会出现问题。如果我执行以下操作,它可以正常工作:

protected $attributes = array('name' => 'my app');

2 个答案:

答案 0 :(得分:1)

Eloquent中的attributes属性(如果我没记错)静态(或Eloquent本身是静态的),你只使用常量来填充静态属性(或方法)。

如果向类中添加构造(在其中也调用父构造),则可以更改属性:

public function __construct(array $attributes = [])
{
    $this->attributes = array('name' => config('app.name'));
    parent::__construct($attributes);
}

但是不要忘记Laravel本身使用的是属性属性,因此您应该使用其他名称或将其添加到数组中而不是设置它!

答案 1 :(得分:0)

请尝试这种方式:(我希望它有所帮助)

在你的模特中:

private $attributes;

在模型中的函数中:

public function anyfunction()
    {
       $this->attributes =  array('name' => config('app.name'));

        dd($this->attributes);
    }