【问题标题】:Laravel Undefined Index on Model Constructor模型构造函数上的 Laravel 未定义索引
【发布时间】:2020-07-29 10:33: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 的问题?

【问题讨论】:

  • 我唯一能想到的就是不同的上下文...尝试一下 var_dumping 和设置。
  • 你是怎么解决的?

标签: php laravel laravel-5.2


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    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 用于模型实例数据,而不是用于参数

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-03
      • 1970-01-01
      • 2021-11-14
      • 2017-02-02
      相关资源
      最近更新 更多