Laravel 4.2 eloquent hasMany php 空结果为真但读后为假?
Laravel 4.2 eloquent hasMany php empty results to true but false after read?
这是class:
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 特定函数是 class 上的启动函数,我们 return parent::boot() 的结果。
老实说,这看起来有点奇怪,我唯一认为的是 属性 可能只有在阅读后才能访问,就像学说一样,他们这样做是为了提高性能,但据我所知知道 eloquent 不应该这样做
这是class:
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 特定函数是 class 上的启动函数,我们 return parent::boot() 的结果。
老实说,这看起来有点奇怪,我唯一认为的是 属性 可能只有在阅读后才能访问,就像学说一样,他们这样做是为了提高性能,但据我所知知道 eloquent 不应该这样做