模型构造函数上的Laravel Undefined Index

时间:2016-03-27 15:49:59

标签: php laravel laravel-5.2

这是我放在一起的Model&#39构造函数;

public function __construct($attributes = array())  {

    parent::__construct($attributes);

    var_dump($attributes);
    exit;
}

var_dump输出为;

array(1) { ["table"]=> string(14) "participants_2" }

但是当我尝试这个时;

public function __construct($attributes = array())  {

    parent::__construct($attributes);

    $this->table = $attributes["table"];
}

我明白了;

ErrorException in Participant.php:
Undefined index: table

如果我在$this行之前或之后放置parent::__construct行并不重要。这怎么可能是一个未定义的索引?我已经定义了,对吧?

也许这是一个Laravel问题?

2 个答案:

答案 0 :(得分:0)

我有类似的问题。在我的情况下,第一次调用方法时没有参数,第二次导致错误消息和参数。检查这不是你的情况。

就是这样 - 您可以添加简单的检查以查看该元素isset()

答案 1 :(得分:0)

如果要将一些参数传递给模型构造函数,则应该这样做:

public function __construct($resource, array $attributes = [])
    {
        parent::__construct($attributes);
        $this->table= $resource;
    }

不做

public function __construct($attributes = array())  {

    parent::__construct($attributes);

    $this->table = $attributes["table"];
}

因为$ attributes用于模型实例数据,而不用于参数