未定义 属性:对象上的 stdClass::

Undefined property: stdClass:: on Object

我到处都在做这种事情,没有遇到任何麻烦,但是这次没有成功。

var_dump($fields);

结果:

object(stdClass)[880]
  public 'teacher_model' => 
    object(Backend\Classes\FormField)[754]
      public 'fieldName' => string 'teacher_model' (length=13)
      public 'arrayName' => string 'Shooting' (length=8)
      public 'idPrefix' => string 'Form' (length=4)
      public 'label' => string 'Modèle enseignant' (length=18)
      public 'value' => string '' (length=0)
      public 'valueFrom' => string 'teacher_model' (length=13)
      public 'defaults' => null
      public 'defaultFrom' => null
      public 'tab' => string 'quendistudio.dispose::lang.tab.report' (length=37)
      public 'type' => string 'text' (length=4)
      public 'options' => null
      public 'span' => string 'storm' (length=5)
      public 'size' => string 'large' (length=5)
      public 'context' => null
      public 'required' => boolean false
      public 'readOnly' => boolean false
      public 'disabled' => boolean false
      public 'hidden' => boolean false
      public 'stretch' => boolean false
      public 'comment' => string '' (length=0)
      public 'commentPosition' => string 'below' (length=5)
      public 'commentHtml' => boolean false
      public 'placeholder' => string '' (length=0)
      public 'attributes' => null
      public 'cssClass' => string 'col-xs-12 col-md-6 col-lg-4' (length=27)
      public 'path' => null
      public 'config' => 
        array (size=5)
          'label' => string 'Modèle enseignant' (length=18)
          'span' => string 'storm' (length=5)
          'cssClass' => string 'col-xs-12 col-md-6 col-lg-4' (length=27)
          'type' => string 'text' (length=4)
          'tab' => string 'quendistudio.dispose::lang.tab.report' (length=37)
      public 'dependsOn' => null
      public 'trigger' => null
      public 'preset' => null

看起来不错,但现在有人解释一下:

var_dump($fields->teacher_model);

结果:

Undefined property: stdClass::$teacher_model

为什么???

所有这些都是通过函数执行的。我刚刚发现我的 $fields 对象是在填充和我的函数之前创建的,所以我的 var_dump 被执行了很多次,即使我只看到最后一个递归,我也可以看到 [=15= 的结果]($fields),只是因为 var_dump 之前的所有递归都没有触发任何错误。因此,对于 属性 对象的可访问性,在 Laravel/October CMS 中,有时您必须在条件下执行此操作。我把它放在之前,它工作得很好。

if (!isset($fields->teacher_model)) {
    return;
}

检查您的 php 版本是否与 octobercms 版本兼容