Laravel 4.2 eloquent hasMany php空结果为true但读后为false?

时间:2018-03-13 23:02:54

标签: php laravel laravel-4

这是班级:

class EventStepInstance extends Model
{
  //..
  public static function boot()
  {
    self::deleting(function($eventStepInstance) {
        $classname = $eventStepInstance->step->handler;
        if (!$classname || $classname == "default") {
            $classname = 'Focus\Sped\Controller\DefaultFormHandler';
        }

        if (class_exists($classname)) {
            $handler =  App::make($classname);
            $handler->deleteData($eventStepInstance->id);
        }

        return true;
    });

    return parent::boot();
  }


   public function step()
   {
     return $this->belongsTo('Focus\Sped\EventStep', 'event_step_id');
   }


    public function checkCompletion()
    {
      var_export(empty($this->step->classname)); // true
      var_export($this->step->classname);
      var_export(empty($this->step->classname)); // false
    }
}

checkCompletion中出现的位是预期的行为吗?为什么会这样?我们覆盖的唯一laravel特定函数是两个类的引导函数,我们返回parent :: boot()的结果。

1 个答案:

答案 0 :(得分:0)

这看起来有点奇怪,说实话,我认为唯一的事情就是这个属性只能在阅读之后才可以访问,就像教条一样,他们这样做是为了提高性能但是我知道这样做很有说服力。这样做