这是我放在一起的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问题?
答案 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用于模型实例数据,而不用于参数