2016-08-24 115 views
3

无限递归我总是调试我用var_dump的代码,我做var_dump -ing经常。上Laravel的工匠

我一直在使用Laravel约一个月,到目前为止,因为第一天我在与无限递归一个恼人的情况,这让我重新启动计算机。

我仍然不确定是什么导致了这一点,但可能是雄辩的集合。这让我写这个问题的最后一段代码是:

模型Applicant.php

public function resumes(){ 
     return $this->hasMany('\MyApp\Resume'); 
} 

我救$applicant的会话,并在视图中我所做的:

var_dump(Session::get('applicant')->resumes()); 

我知道正确的方法是->resumes,因为它是一个属性而不是方法,但我很想知道为什么这会使我的Ubuntu崩溃,出现内存不足,迫使我重新启动。

是否有配置工匠,以防止这种情况发生的方法吗?为什么会发生?!

@edit

,当我这样做没有->get()->all()

var_dump(Model::where('field',$val)); 

回答

1

你可以尝试保存模型关键会议,而不是模型同样的问题发生?

Session::put('applicant_id',$applicant->getKey()); 

那么当检索它

public function getApplicantFromSession() { 
    static $applicant; 
    if(is_null($applicant)) { 
     $applicant = Applicant::find(Session::get('applicant_id')); 
    } 
    return $applicant; 

} 

然后得到恢复的,我会用:

public function getApplicantResumes() { 
    $applicant = $this->getApplicantFromSession(); 
    if(!is_null($applicant)) { 
     return $applicant->resumes; 
    } 
    return collect([]); 
}